Add difficulty and reward calculations

These patches add next difficulty/target calculation support, and move the Dogecoin-specific reward calculation code into the Dogecoin module. Also fixes the Dogecoin rewards past the 600k block which are fixed at 10,000 DOGE, and do not continue to tail off.

Unit test for Dogecoin difficulty at block 145,002 is currently broken, and trying to determine if this is a problem with the data provided or the calculation code. Other test cases for Digishield difficulty calculation code work, so at this point presuming this is a problem with the input data.