Introduce option to switch to use "graphql-ws" instead of "subscriptions-transport-ws"
### Feature description

Add ability to use the library "graphql-ws" instead of the deprecated library, "subscriptions-transport-ws".

I'm creating this ticket as a place for discussing the concept.

### Motivating

The [repository](https://github.com/apollographql/subscriptions-transport-ws) for the module, `subscriptions-transport-ws`  has the following comment:

> The `subscriptions-transport-ws` library is not being actively maintained. It is recommended that you use the [graphql-ws](https://github.com/enisdenjo/graphql-ws) library instead. For details read the [GraphQL over WebSockets](https://the-guild.dev/blog/graphql-over-websockets) announcement.

Evidently, the repository has not had any changes within the last year (apart from one to add that comment the `README.md` file itself.  The new repository has formulated a list (up to Dec'18) of the [existing issues](https://github.com/enisdenjo/graphql-ws/issues/3).

See also the following comment from the following [blog post](https://the-guild.dev/blog/graphql-over-websockets):
> Since leaving Apollo, [not a lot of work has been gone into those libraries](https://github.com/apollographql/subscriptions-transport-ws/issues/777). That's why I was so thrilled that [Denis](https://github.com/enisdenjo) decided to pick up that important work and create a new library for the WebSocket Protocol.
>
> We will support his work of maintaining the library and standardizing it with the GraphQL over HTTP working group. This is a part of a lot of exciting work coming up about GraphQL and real-time, so follow us for new things in this space!
>
> Denis will take it away from here!

I initially went and updated just my client to use graphql-ws, but during the implementation, noted the following comment in the [Readme of graphql-ws](https://github.com/enisdenjo/graphql-ws):
> This library and the [GraphQL over WebSocket Protocol](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) are **not** cross-compatible with the legacy [`subscriptions-transport-ws`](https://github.com/apollographql/subscriptions-transport-ws) and its [accompanying Protocol](https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md).
>
> You must use `graphql-ws` coherently and implement the [GraphQL over WebSocket Protocol](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) on both sides, server and the client.


### Breaking changes

If the option was to only use graphql-ws then as per the disclaim, there may be a case that existing implementations fail to work.

### Supporting development

I [tick all that apply]:

<!-- To tick a checkbox, change it from `[ ]` to `[x]` -->

- [ ] am interested in building this feature myself
- [X] am interested in collaborating on building this feature
- [X] am willing to help testing this feature before it's released
- [ ] am willing to write a test-driven test suite for this feature (before it exists)
- [ ] am a [Graphile sponsor](https://www.graphile.org/sponsor/) ❤️
- [ ] have an active [support or consultancy contract](https://www.graphile.org/support/) with Graphile
