Better encapsulation for Blockchain db

- Move blockchain database to actual Blockchain class
- Change WorldManager.instance to private attribute and use WorldManager.getInstance();
- Add Blockchain.close() 
- Updated Block calculation tests with block which actually has genesis as parent
- Make Blockchain.addBlock public (especially useful for testing)
- Simplfied Block.getParent() by using Blockchain.getByNumber(blockNr-1)
- Made a start with separating Wallet from Blockchain (dependency should be the other way around)