It doesn't work since quart's objects only work with stuff
that is already from quart, e.g the current_app stuff
requires you to be inside a special hidden context
that only quart functions get.
Gateway code is detached from quart since quart's websocket
stuff can't handle custom error codes.
- auth: optional db detach
- gateway.errors: add InvalidShard, ShardingRequired
- gateway.gateway: pass asyncpg connection and StateManager
- gateway.state: add repr, etc
- gateway.state_man: add remove(), fetch_states()