Create new objects as required during hydration.

This patch allows the hydrator to create new entities as required during
inflation, if an existing entity cannot be found and there is data where
it expects to be, e.g. instead of

```php
<?php
$new = new Entity;
$new->setFoo('bar');
$data = array(
    'entities' => array($new)
);
$hydrator->hydrate($data, $entity);
?>
```

it is instead possible to do

```php
<?php
$data = array(
    'entities' => array('foo' => 'bar')
);
$hydrator->hydrate($data, $entity);
?>
```

Unit tests also fixed to mock getIdentifier() so that the correct
identifier fields are returned, and new tests added to verify behaviour
of toOne() and the new version of toMany().