upgrade ModUrl usage for Route compatibility

The idea is to maintain BC by allowing ModUrl to continue to do what it did before but add another option to create a RouteUrl if a module supports it. Both types would be storable and allow a functional Url to be generated from the data.

/cc @Guite @drak @cmfcmf

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| Refs tickets  | #1945, #1940, #1937
| License       | MIT
| Doc PR        | -

TODO:
 - [x] Modify Searchable to use UrlInterface instead of ModUrl
 - [x] Modify Hooks to use UrlInterface instead of ModUrl
 - [x] look for other applications of ModUrl in the core. replace as needed.
 - [x] add or adjust documentation
 - [x] test/finalize