Fixed a bug so that a versioned entity with a oneToOne id can be created

- Fixed the basic entity persister so that versioned OneToOne entities can be created
- Created an IdentifierConverter utility class
- Moved the logic for the flatten identifier method into the new utility class
- Replaced calls for private flattenIdentifier to use new utility
- Added appropriate unit tests
Yep, otherwise this happens

Exception: [Doctrine\ORM\ORMException] Entity of type Doctrine\Tests\Models\VersionedOneToOne\FirstRelatedEntity has identity through a foreign entity Doctrine\Tests\Models\VersionedOneToOne\SecondRelatedEntity, however this entity has no identity itself. You have to call EntityManager#persist() on the related entity and make sure that an identifier was generated before trying to persist 'Doctrine\Tests\Models\VersionedOneToOne\FirstRelatedEntity'. In case of Post Insert ID Generation (such as MySQL Auto-Increment or PostgreSQL SERIAL) this means you have to call EntityManager#flush() between both persist operations.