Container::call() now supports invokable class names

`Container::call()` supports callable objects:

```php
class Foo {
    public function __invoke() {
    }
}

$container->call(new Foo);
```

This pull request adds support for providing the class name as string: `$container->call('Foo');`.

The object will be created using `$container->get()` before being invoked.

This feature adds consistency for `Container::call()` with #185 and #173. Now `Container::call()` can call anything and it's awesome.

I have also included tests for the definition dumpers.