John Carver signs new Newcastle contract