OGM-469, OGM-625, OGM-629: Reading embedded collections/associations with the embedding document in MongoDB

(based on top of PR #389, see [here](https://github.com/gunnarmorling/hibernate-ogm/compare/gunnarmorling:OGM-615...gunnarmorling:OGM-469?expand=1) for the diff of this PR only)

This uses the new entity extra state to expose the `Tuple` of the embedding entity to association operations on `GridDialect`. Dialects can use this to access the association from the tuple snapshot of that entity. `TupleContext#getSelectableColumns()` returns the names of the embedded associations now for that purpose (allowing dialects to load all the data using the right projection).

This also fixes OGM-625 (don't go to the datastore in `MongoDBDialect#createAssociation()`) and OGM-629 (element collections in nested components couldn't be stored in CouchDB).

I still need to polish some details, but let me know what you think. Thanks!