Decouple Genesis from Repository and add txTrieRoot validation

- txTrieRoot wasn't calculated correctly, but also wasnt checked against the block value so that wasn't noticed. Now it's validated after calculating the txTrieRoot based on txReceipt (instead of tx, as was done before)
- Decouple Genesis from Repository and WorldManager so it can be used separately in tests.
- Some minor code formatting tweaks