engine-reporting: Capture `operationName` and `document` within errors.
engine-reporting: Capture `operationName` and `document` within errors.

This is another take on #2659 which has been otherwise excluded from the
2.6.0 release.

The work in #2659 was meant to ensure that the `document` and
`operationName` were set at the appropriate locations within the lifecycle
events for the `graphql-extensions` module, specifically when an error had
been thrown within `didResolveOperation` of the new request pipeline.

While the solution in #2659 certainly works, it introduced a new life-cycle
method for details which we could also calculate without adding to the
API surface area by using information which was already exposed.

Even though `graphql-extensions` is no longer really being supported,
avoiding growth on the API surface area of `graphql-extensions` is still
important for any API!

Ref: https://github.com/apollographql/apollo-server/pull/2659

apollostack/apollo-server