[WIP] Added resolve entities support in discrim. map

This PR is WIP. I just wanted to know if what I am doing is wrong or I can go on with tests and documentation.

This is what happens.

I have nicely the ability to define a relation using just the interfaces, and then, resolve these relations overriding the interfaces with the implementations. This resolves a big problem: Multiple implementations of one interface.

But, when you define a discriminatorMap, you **Must** define it using specific implementations, so all this flexibility gained in the relations is lost at this point.

Using a new listener, its easy to override this interfaces.

What do you think?
@Ocramius hmm, resolveTargetEntities is an array like this:

``` php
array(
    'My\Namespace\PersonInterface' => 'My\Namespace\Person',
    'My\Namespace\CartInterface' => 'My\Namespace\Cart',
    'My\Namespace\OrderInterface' => 'My\Namespace\Order'
);
```
so there are two ways of doing this.
* With something like a setter (old implementation)
* Passing full associative array through the constructor as an argument

``` php
/**
 * @var array
 */
private $resolveTargetEntities = array();

/**
 * Construct
 *
 * @param array $resolveTargetEntities
 */
public function __construct(array $resolveTargetEntities)
{
    $this->resolveTargetEntities = $resolveTargetEntities;
}
```
This second one maybe is better to avoid mutability. Am I right?