refactor FakeBlockchain to work around caching issue
fix fake chain generation

genesis block was not being yield, so the blocki #1 was becoming genesis

* moved parsing blocks from disk away from the benchmark
* added check to make sure block was really stored in the main chain