Performance and better separation of concerns

See performance tweaks https://github.com/ethereum/ethereumj/pull/73
- Using LRUMap for SHA3 hashing
- Re-using final byte-arrays to avoid mass creation of byte[] objects
- Some minor cleanup

Separation of concerns
- Put code to load the blockchain in Repository and have Blockchain only deal with that class
- Refactor and separate some "apply block"-code from the Blockchain
- Move processing of blocks and txs to the Blockchain, because that's where they will eventually end up.
- Avoid pushing the conflicting state into the database, to make debugging easier by restarting from an already filled database until the last correctly processed block