Add Dogecoin difficulty hardforks

This adds the code to handle Digishield difficulty calculations for Dogecoin,
as well as correctly setting the switch-over block for when Dogecoin's testnet
difficulty calculations change to enable resets.
Added initial draft of AuxPoW handling, primarily for Dogecoin at this time however
any chain following the Namecoin merged mining specification should work. AuxPoW blocks
are now identified, and the AuxPoW data validated and checked against the difficulty of
that block.