shalow reorgs

DB snapshots are taken every 100 blocks. Reorgs due to orphaning are handled by rolling back to nearest snapshot and resyncing the blockchain tail. This yields ~15x faster reorgs.