Individual shared setting does not override the shareByDefault setting of the ServiceManager

This PR currently contains just a failing test.
_Edit: Added possible fix._

Fixing is not as easy as it looks.

Making the tests succeed can be achieved by changing the following 3 lines https://github.com/zendframework/zf2/blob/master/library/Zend/ServiceManager/ServiceManager.php#L461

```php
if ($this->shareByDefault() && (!isset($this->shared[$cName]) || $this->shared[$cName] === true)) {
    $this->instances[$cName] = $instance;
}
```

into

```php
if (
    ($this->shareByDefault() && !isset($this->shared[$cName]))
    || (isset($this->shared[$cName]) && $this->shared[$cName] === true)
) {
    $this->instances[$cName] = $instance;
}
```

But another problem lies in how the shared setting of the indivual services are set: as the third parameter of `setInvokableClass($name, $invokableClass, $shared = true)` and `setFactory($name, $factory, $shared = true)` which sets the ***individual*** shared setting always to yes by default which is a problem when shareByDefault is set to false.

Any ideas are welcome.