Removed the 'locale' module dependency since it is not used, and triggers a *batch* download of the po files, and somewhat manage to kill the simpletest process (more than 250 recursive calls, mostly due to the batch ui redirects).

I still have a simpletest task not passing, but i don't think this is related to the current patch. There are some weirdness with the cache() object here (due to latest changes?).$whitelist = cache()->get('path_alias_whitelist'); does not seem to return anything, making the testPathCache() fails. I could use some help here.

Handling most of issues in #30. #2 and #4, lets handle in a follow-up (trying to minimize the refactor). #6, what does l() become in a class? I don't see an equivalent method on UrlGeneratorInterface. #9 lets handle in a follow-up.

About the hook_menu() changes, I'm not sure about the desired structure. I tried to remove the whole reference to this path and the title page was removed. Removing only #type and #weight, title worked, but it displayed the help message defined for admin/config/search/path instead of admin/config/search/path/add.

Fixed urlGenerator(). Removed the todo, because it really makes no sense. Currently, The pid is passed to a load function on a CRUD service that is returning an associative array with some properties, like alias, language, etc... This cannot be upcasted in it's current state because there is no class to Upcast it to. Ideally, we should completely remove the Path CRUD service, create a model for a PathAlias with the attributes required, and then this model could be upcasted based on the pid, but this is so out of scope for this issue, it's ridiculous.

Leaving #2 alone for now. Did a grep of core, and every instance of ->extend does not have a leading \ before Drupal. #1 is addressed. Also, not in the interdiff because it was part of reroll, but routes are now path.

_title does not work with _form. These routes were initially converted to _content placeholders in #2089635: Convert non-test non-form page callbacks to routes and controllers which do support _title. The titles are being output in $form['#title']. I understand the reasoning behind this, as a form is not strictly linked to a route but can also be placed arbitrarily on a page, and needs to be able to provide a title regardless of the route used.

Both path_admin_filter_form_submit_filter() and path_admin_filter_form_submit_reset() are broken in HEAD, and this papers over that we have no test coverage. Either we open an issue to fix that and block this one, or just do it here.