Kjr/refactors

It's still not quite done, but I'm using this refactoring as a way to understand Pakyow.

Still TODO:
- promote Topics to be a real class.
- refactor Category some more.
- do something about that Docs.load method. Still don't like it.

It's 5 o'clock somewhere. Not sure 5am is what they meant... Opps.