Massive refactoring

- Droped per token/provider exists/not_exists
- Abstracted all database logic to driver
- URLs now treated as entire URLs, not they're component parts
- Support for handling old routes
Added AutoRouteManagerTest
Added unit test for UrlGenerator

- Used prohpecy as an experiment
- Rebased on the new metadata implementation