Refactor named routes

Second try to bring up route names.
Solution solves only `UrlDispatcher` requests, other implementations may have another public API.
`Entry` converted to `Route` with `PlainRoute`, `DynamicRoute` and `StaticRoute` descendants.
UrlDispatcher is a `Mapping` with `__getitem__` and other required methods.

@fafhrd91 thoughts?