bug 912084: Redirect/rewrite Middleware for zones

This PR adds an `url_root` field to `DocumentZone`. When set, the included middleware alters the URL at which the docs under that zone are served.

Spot checking:

* Create a doc at `/en-US/docs/Zones/AppsPages`, convert it into a content zone.
* Create a child doc at `/en-US/docs/Zones/AppsPages/Foo`
* Set `url_root` on the `DocumentZone` for `/en-US/docs/Zones/AppsPages` to `Apps`.
* The doc originally at `/en-US/docs/Zones/AppsPages/Foo` should now be accessible at `/en-US/Apps/Foo` - notice that the URL has jumped outside of the `/en-US/docs` URLspace
* Any attempt to load `/en-US/docs/Zones/AppsPages/Foo` directly should result in a 301 redirect to `/en-US/Apps/Foo`
* Try adding URL params - `/en-US/docs/Zones/AppsPages/Foo?raw=1` should redirect to `/en-US/Apps/Foo?raw=1`
* Clicking editing buttons & etc should end up at the right rewritten URL, albeit after a redirect
* In the database, docs still live at their original URLs, which might be confusing but I can't think of a good way around it. Also, removing `url_root` or the `DocumentZone` altogether should reverse the rewrite effect.
* I haven't yet looked into how this might interact with localization

What this PR does **not** do is rework all the link construction for pages. So, links within the site will still point at original wiki URLs (eg. `/Zones/AppsPages/Foo` instead of `/Apps/Foo`). Getting all those links in synch will take some work, so I wanted to get some feedback on this general middleware approach first.

I also haven't looked into what interactions this might have with localization.

So... is this crazy?