[RFC] Page changes

As the title suggests, I'm not expecting to get this pull request merged immediately. For now, I'd just like to get other peoples thoughts on some changes I've made to the Page model recently.

As the explanation is a bit long, I've put it in a gist which can be found here: https://gist.github.com/kaedroho/9537074