blockchain: Only enforce BIP0030 prior to BIP0034.
blockchain: Only enforce BIP0030 prior to BIP0034.

This modifies the code to only enforce the fairly expensive BIP0030
(duplicate transcactions) checks when the chain has not yet reached the
BIP0034 activation height (and is not one of the 2 special historical
blocks that break the rule and prompted BIP0034 to being with) since
that BIP made it impossible to create duplicate coinbases and thus
removed the possibility of creating transactions that overwrite older
ones.

This is a rather large optimization because the check is expensive due
to involving a ton of cache misses in the utxoset.  For example, the
following are times it took to perform the BIP0030 check on blocks
425490 - 425502 and a system with a relatively old Hitachi spinner HDD:

block 425490: 674.5857ms
block 425491: 726.5923ms
block 425492: 827.6051ms
block 425493: 680.0863ms
block 425494: 722.0917ms
block 425495: 700.0889ms
block 425496: 647.5823ms
block 425497: 445.0565ms
block 425498: 602.5765ms
block 425499: 375.0476ms
block 425500: 771.0979ms
block 425501: 461.5586ms
block 425502: 603.0766ms

As can be seen from these numbers, this reduces the block validation
time by an average of just over half a second for the given
representative data set and hardware.

Signed-off-by: Dave Collins <40f085f3e2c05dc127b0a330228985d077d6c8f7@conformal.com>

ltcsuite/ltcd,adiabat/btcd,jongillham/btcd,davecgh/btcd,Roasbeef/btcd,Roasbeef/btcd,aakselrod/btcd,Stash-Crypto/btcd,davecgh/btcd,cqswxj2013/btcd,wallclockbuilder/btcd,btcsuite/btcd,ltcsuite/ltcd,dajohi/btcd,jongillham/btcd,wallclockbuilder/btcd,btcsuite/btcd,ppcsuite/ppcd,Stash-Crypto/btcd,tb00/btcd,cqswxj2013/btcd,aakselrod/btcd,adiabat/btcd,tb00/btcd,dajohi/btcd,dajohi/btcd,ppcsuite/ppcd