PREVIEW: OGM-526 - Map MongoDB object ids via IDENTITY strategy

@emmanuelbernard, @DavideD: Can you give me some quick feedback on this one.

The change brings support for MongoDB's `ObjectId`. It is supported to map it as `String` and Mongo's own `ObjectId` Java type.

When using identity strategy AUTO or INSERT, a value will be generated by the dialect upon insertion, so one round-trip to the datastore is saved. For that purpose I created another dialect facet, `IdentityColumnAwareGridDialect` which defines the operations required for the identity generation strategy. I also had to rip some pieces out of `EntityDehydrator` and move them into a new class `EntityAssociationUpdater`. The reason being, that we used to update the inverse side of bi-di associations *before* inserting the tuple on the main side. Of course this doesn't fly when generating the tuple id only during insert.

Thanks for any input!
I thought about it, but I don't think it's a great improvement. The method `nextValue()` works for table and sequence generators (the implementation can recognize the specific type from the passed request object). So we'd have to split that up as well into e.g. `getNextValueFromTableSequence()` and `getNextValueFromSequence()` and I think that'd be more complex than the current solution.

That being said, I can add a default implementation of `supportsSequences()` (returning false) to `BaseGridDialect`.