[2.0] moved everything related to the routing to a reusable service provider

The goal is to be able to reuse the router (matcher and generator) outside Silex, but probably in another framework based on Pimple and the Symfony Components.

At this point, I'm not sure if Is it going too far or not. Slowly but steadily, a lot of stuff are migrating to the `Silex\Provider` namespace. That said, I think I'm done with moving things around.