[graphql] Convert to using the new query interpreter runtime (1.13.x)
As detailed in [GraphQL - Interpreter](https://graphql-ruby.org/queries/interpreter.html)
> GraphQL-Ruby 1.9.0 includes a new runtime module which you may use for your schema. Eventually, it will become the default.
>>>
The new runtime was added to address a few specific concerns:
- Runtime Performance: For very large results, the previous runtime was slow because it allocated a new ctx object for every field, even very simple fields that didn’t need any special tracking.
- Validation Performance: The previous runtime depended on a preparation step (GraphQL::InternalRepresentation::Rewrite) which could be very slow in some cases. In many cases, the overhead of that step provided no value.
- Extensibility: Although the GraphQL specification supports custom directives, GraphQL-Ruby didn’t have a good way to build them.
>>>
The GraphQL gem is already shipping 2.0!
However for this effort, we're moving first to 1.13.x. After that transition is complete, we can tackle 2.0.
A lot of work has been done already, from https://gitlab.com/gitlab-org/gitlab/-/issues/13984+ to https://gitlab.com/gitlab-org/gitlab/-/issues/210556+
**MR handling**
Many of the changes can not really be checked into `master` at this time. There are too many changes to effectively use a feature flag, although there is one defined, `:graphql_interpeter`.
For now we will use the following process:
1. Main integration branch will be `bw-graphql-interpreter`
2. All new MRs that cannot be included in `master` should target the integration branch `bw-graphql-interpreter`
3. If a change in the code is compatible with `master`, then the change should be made there
4. The integration branch will be rebased on `master` periodically, and downstream branches can then rebase on the integration branch
epic