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.
Hey Nick , I do want to see this info 
in two cases: 
 1. When I am running into long runs I will not go up every time to check the values
 2. When I run it in the sand box it become the only place for that info