Midfielder James Garner signs a new four-and-a-half-year contract with Everton.