Add Argument::invoke() for testing callback arguments

The idea here is to cause a callback argument to a mock to be invoked so that the contents of the callback can be tests. Example:

```php
<?php

function it_tests_callback(Collection $collection, Item $item)
{
    $collection->foreachItem(Argument::invoke([$item], 'success'))->willReturn();

    $this->execute($collection, 10);

    $item->action(10)->shouldHaveBeenCalled();
}

function execute($collection, $value)
{
    $collection->foreachItem(function ($item) use ($value) {
        $item->action($value);

        return 'success';
    });
}
```

I understand this could be controversial so I'm expecting some discussion.

Also I wasn't sure what score value to return so I just took the same as `AnyValueToken`? 
btw, it can even make things worse because of reference mismatch: http://jpauli.github.io/2014/06/27/references-mismatch.html