title: Apollo-server 2 validation middleware
body: <p>I want to add a validation layer to the apollo server.
  It should run after every graphql query / mutation but before the resolver function. The validation layer will need to know the graphql query / mutation being called and the passed parameters. It will throw an error if its invalid and prevent the resolver function from running.</p>
  
  <p>I'm unclear where to inject it without manually placing it in each resolver function.</p>