Did significant refactoring on most sections.

Here's the new version. I'm much happier with how things are laid out now, doesn't feel a hacked together. I have yet to document and write test code (sorry about that), but I did manage to make everything much cleaner, smaller, and much faster. Hopefully it won't be too hard to see what I did.

I'll get some documentation done, and then maybe we can go over it the new stuff.

P.S. Most of it was written between the hours of 11PM and 4AM tonight, so sorry in advance for the inevitable typos..