Fix Doctrine ODM Support

Changes `Faker\ORM\Doctrine\EntityPopulator` to manage Doctrine ODM Documents.

Using the Class `Doctrine\Common\Persistence\Mapping\ClassMetadata` instead of `Doctrine\ORM\Mapping\ClassMetadata`

Managing ODM ReferenceOne as ORM One-To-One relations
(`\Doctrine\ODM\MongoDB\Mapping\ClassMetadata` does not have the `getAssociationMappings` function, I retrieve `associationMappings` using the exposed public var)

Changes generateId's signature to avoid using `Doctrine\ORM\EntityManagerInterface`; uses `Doctrine\Common\Persistence\ObjectManager` instead.
As described here : http://php.net/manual/en/language.operators.type.php (part.7) , no it shouldn't. 

If I do something like this:
```php
<?php
$faker = \Faker\Factory::create();
$isFooBar = $faker instanceof \Foo\Bar;
```
`$isFooBar`value is false.

The test can be rewritten like this if we want
```php
 if ($this->class instanceof '\Doctrine\ORM\Mapping\ClassMetadata') {
```

If we want, for more clarity, we can split class to `Faker\ORM\Doctrine\EntityPopulator` and `Faker\ORM\Doctrine\DocumentPopulator`, and add an `addDocument` in `Faker\ORM\Doctrine\Populator`, for using `Entity` for ORM use and `Document` for ODM use.