Major refactor

I spent a ton of time over the weekend working on this refactor. A lot of classes have been moved around (or eliminated completely).

Things are broken, I am sure - maybe even logical breaks. But, the refactoring is solid in its direction, I believe. After this, the only spots that I can identify as needing major major attention are the managers.

We'll be close to a usable product in the next week.