Support callbacks that are not objects

Currently we only support objects with an __invoke method, which doesn't seem to be necessary.
can you change both exception messages to use ``callable`` rather than ``callback`` to match the PHP type rather than the way the variable is used ?