use the Symfony CMF Routing component

credits: https://github.com/lsmith77 and https://github.com/stewe

includes: https://github.com/Sylius/Sylius/pull/1516

to clarify, this needs no changes to the DB structure.

Advantages:
- there should be no performance overhead but considerable additional ease of use for developers
- routing is done inside the routing layer, rather than inside the controller
- no need anymore to prefix the paths with /p and /t (using a prefix is now optional but can of course cause collisions between routes)
- instead of having to know the route and the parameters, all that is necessary is to pass the given instance of a product or category

Disadvantage:
- routes to products/catalog require a DB entry to be generated, previously it was in theory possible (though it seems not done) to generate a route without a DB entry (which would not really make sense, except for maybe test scenarios).

Open items:
- it should be possible to simplify the controller code further
- this could obviously also be used in the backend
- fix tests
- update composer.lock (didn't update so that we do not get a merge conflict there)

includes https://github.com/Sylius/Sylius/pull/1366