OGM-389 Extending 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-389 Making handling of empty tuple/association snapshots consistent, avoiding references to "impl" package from other modules
OGM-389 Moving constants from Environment to CouchDB
OGM-389 Incorporating misc. feedback from review