Callable identity accessors

Not all developers are familiar with the Reflection API, so requiring ReflectionMethod to be passed as an identity accessor might be confusing to them.

More importantly, it does provide a simple route for objects that have composite identity with separate accessors.

```php
$repo = new InMemoryRepository(function(Conference $conference){ return $conference->getName() . $conference->getYear(); });
```


Déjà vu? OCP?