Large number of fixes.

In this commit, I've fixed:

* The Page class has been pulled out into a separate file
* Settings have been pulled out into a JSON file that gets read and
parsed when the application starts up
* The above change allowed me to "fix" the relative paths problem by
specifying a base tag in the layout (this is the most elegant solution I
could come up with after having tried about 10 different things)
* There is no longer a bug preventing nested folders/categories from
working

I'm 99% certain this codebase is now production-ready. As such, I'm
going to start using it for note-taking and see what happens.