OGM-389 Enhancing GridDialect contract to pass effectively applying options to association methods

* Adding AssociationContext#getOptionsContext() returning an AssociationOptionsContext providing access to the effectively applying options for the given association
* Passing AssociationContext to all association-related methods on GridDialect
OGM-389 Adding API for setting CouchDB-specific options

* Adding datastore identifier
* Adding context types
* Adding option for configuring the type of association storage
OGM-389 Making association storage configurable via annotations for CouchDB
OGM-389 Introducing property for configuring the association storage strategy on the Configuration level when bootstrapping a session factory; Enabling GridDialect types to implement Configurable for that purpose
OGM-392 - WIP - Adding support for generated properties; Making use of that for mapping CouchDB's "_rev" property