OGM-522 Cache Neo4j CRUD queries

https://hibernate.atlassian.net/browse/OGM-522

Queries get created during the schema definition and injected in the dialect using a map.

The dialect can get the queries using EntityKeyMetadata or AssociationKeyMetadata as keys.
I would name it `SessionFactoryLifecycleAwareDialect` to stress the fact that this is about certain points in the SF lifecycle. Every grid dialect can be aware of the session factory also without this facet by accessing the service registry.