Decoupled NetworkMessage and Updates

Previously, Transactions and Blocks were distinguished at the core,
being a part of the package 'common'. Now, the only common element is
the NetworkMessage. The blockchain is responsible for breaking down a
network message into Updates, and then the State level object is
responsible for processing the updates.

I'm not sure why it works, but the test case passes. Please look
carefully.

Cosemetic changes to follow shortly.