Pages update

This is an alternative option to #94. Rather than working out paths at request time, it stores the complete path in the database, so only needs to run one query. Seems to make more sense to do it this way round.

Also means that you can have multiple pages with the same slug, as long as the full paths don't conflict, allowing for things like:

* `/about/`
* `/mentors/about/`