Ryan Shawcross signs new Stoke contract