Verify that stateRoot equals the latest block stateRoot

After a block is processed, the world state should be exactly the same as with other clients. This can be tested by checking the world stateRoot hash with the stateRoot hash in the latest block. Notice that on current testnet (protocol v23) the first few blocks - where only the coinbase changes state - are ok, but once a transaction is executed, the stateRoot becomes misaligned.

- Also updated protocol version to version 23 to keep in line with the cpp-ethereum client.