Kjr/refactors

It's still not quite done, but I'm using this refactoring as a way to understand Pakyow.

Done:
- promote Topics to be a real class.
- refactor Category some more.

Still TODO:
- 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.
only gets called once, I think it's ok.