Explicitly update category children slugs

When a category's slug is updated, it's children's slugs have to be
updated as well. That already happened due to quirky behavior - both the
move function used in Oscar's tests and the form in the dashboard caused
the children slugs to be updated. But children slugs would still break
when a category was updated directly, e.g. in the shell.
The behavior is now explicit in AbstractCategory's save method. This
probably causes quite a few redundant queries, but shouldn't be a
problem as categories likely don't update often.
Make category URLs resistant against slug changes

Category URLs used to be based on solely the slug. Renaming the category
or any of the parent categories would break the URL. Hence, the new URLs
consist of both the slug and category PK (compare product URLs).
The legacy way still works to not break existing systems.