OGM-151 Create and cache metadata info in EntityKey and AssocitiationKey

The patch is functional but not feature complete. However I won't have time to work on it much more so I'd rather see some of it in.

`EntityKey` is complete AFAIK

`AssociationKey` is partially done. What's missing is:

- ability to cache collection role, association kind, bidirectionality info
- use of cached `AssociationKeyMetadata` in `EntityDehydrator`

`RowKey` is not done nor explored.