Feature - Routes as Objects - Implemented

This is the actual implementation discussed in #107.

This implements all originally discussed features in the issue, while also converting the `$routes` array in the main Klein class to a new "RouteCollection" class. This allows for easier extendability.

Oh, and its all dependency injected and unit tested.