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.
Why is it keyed by `Object`? A more specific type would be nice. If there is no other common super-type of the key types in use, two separate maps seem better to me.