Simplify the client
Add basic logging
Support disconnecting properly
Redundant exception name is redundant
Inherit from DataModel
Swap
Don't duplicate the block and its header
Don't use the secret method unnecessarily
Add notfound message repr
Fix the hash calculation for new serialization
Don't waste memory
Use elif properly

THIS BUG WAS VERY HARD TO TRACK DOWN

If the variable integer is exactly 254 (0xfd), the deserializer would
read first 2 and then 4 bytes, and return a garbage value.
Add getblocks message