Adjusting Page model to allow more flexibility

* `path` no longer needs to be unique
* `real_path` stores the actual requested path
* `parent` allows for the building of path structures