Cleanup gateway classes + make sure DoctrineGateway can also be used in e.g. mongodb ODM
Make the gateway dependencies configurable.
Inject gateways with a custom gateway factory
Refactor: change factory to gateway directory
Refactor: change factory to gateway directory
CS fix