Code Reorganization
Didn't touch the network code, but that should probably be its own higher level package.
Added some documentation for the flow of information in the program, in particular all of the steps that are followed when processing transactions and blocks.
All of it is accurate except for the 6 (2 sets of 3) bullet points pertaining to transactions. I was tired and couldn't quite figure out which parts were correct and which weren't. I'm pretty certain that something's off though, so hopefully I'll fix that tomorrow.
There are lots of mini fixes that happenend in the codebase. Lots of small things that hadn't been fully implemented, and a handful of subtle things that would have introduced bugs.
I fixed up most everything, but didn't reorg the client/wallet/host/etc code. That will probably all be moved to its own package, which will probably break all of the tests.
That's okay though because the tests also need a facelift, and need to be made more comprehensive.