Include product id in "hierarchical" product URLs.

As raised in stephemcd/cartridge#101, the "category_product" view/urlpattern will
typically have precedence over mezzanine's Page catch-all urlpattern, and will
conflict (causing 404) for any Page with a slug of "shop/*/*", assuming
in this example that cartridge urls are included at "shop/".

Adding the product ID to the URL reduces the conflicting namespace to
"shop/*/*/(\d+)", on the presumption that numeric-only slug components are
unusual, and can at least be avoided for any Pages residing at "shop/*/*".

As an added benefit, exposing and resolving on the row id rather than slug
makes the URL resilient to changes in either the category or product slug.