Test case for equal, but not identical, document ID's
Fix grammar in UnitOfWork documentation
Differentiate between ID types in UoW's identity map

Previous use of document IDs as array indexes lead to ambiguity when handling numeric strings. Serializing values to respect ID types will avoid this, although it may be too strict for floats and integers, which are comparable in MongoDB.

Additionally, this change requires that numeric IDs be fetched by the appropriate type, as shown in IdTest::testCollectionId().
Revise documentation for UnitOfWork::getDocumentIdentifier()

The previous documentation looks to have been a copy/paste from ORM.
Fix test for handling of equal, but not identical, IDs
Make getDocumentState() consistent with ORM refactoring
Allow for non-null, falsey id values in getDocumentState()
Small refactoring for UnitOfWork::doMerge()
Support non-null, falsey identifiers and getIdentifierObject() in more places
Removed scheduled extra updates, move id generation to UnitOfWork::persistNew() and throw exception when DocumentManager::createDBRef() is called on an object without an identifier.
add test failure.
Refactor UnitOfWork::doMerge() based on ORM
add failing assertion to DetachedDocumentTest
port remaining functionality from orm merge() functionality.
fix GH580Test failure from exception not cleaning up queuedInserts
Remove postInsertIds from DocumentPersister and UnitOfWork.
Add missing CmsUser::phonenumbers mappedBy configuration.
Add BaseTest::createTestDocumentManager() convenience method.
add tests for various types of identifiers.
cast identifier values on persist.