Improved functionality and performance when adding class:method routes

The current routing setup, in order to check for is_callable(), instantiates and caches class instances in Route::setCallable() when adding class:method routes. This has the negative side-effect of firing class (controller) constructors each and every time a route is added, as well as caching redundant instances.

See: http://help.slimframework.com/discussions/problems/6304-slims-classmethod-routing-syntax-instantiates-a-new-class-for-each-and-every-route-added

This PR checks for callable methods using reflection, and only instantiates a class instance on the first getCallable() call, usually from dispatch();