The function Blockchain.verify_header was previously not covered by tests
at all. Even removing all the tests in it would still make the unit tests
pass. This change adds tests for this important (!) function.
after a reorg, in a many fork/orphan chains scenario,
we would sometimes not undo SPV for enough blocks
functions in blockchain.py somewhat based on kyuupichan/bitcoinX@5126bd15ef