Multiple performance fixes

- CompactEncoder.binToNibble() 3x performance increase
- Trie.matchingNibbleLength() 2000x performance increase (what was I thinking)
- HashUtil.sha3() small fix to only access LRUMap once
- Logging in VM and Program adjusted to be cleaner and more like pyethereum (easier debugging)
- Some more cleaning and fixing typos
- Move update of the trie out of ContractDetails.getEncoded() and into ContractDetails.getStorageHash() where it belongs

Overall 25% performance increase on my machine.