Add Dogecoin test cases

Added test cases covering Dogecoin address validation, block parsing, merkle root calculations
and full AuxPoW block validation.
Handle empty merkle branches

Corrects the issue where calculating merkle root from an empty merkle branch results in
nil. Now correctly returns the original hash.
fix block notifications on reorg
Add valid_pubkey?
Prefer Resolv::DNS to subshell and regexps

Benefits
  * support transparently both IPv6 and IPv4
  * avoid spawning a child process
  * friendlier to all Ruby VMs (especially jruby)
  * less brittle when avoiding regexps
Add support for decoding negative values in compact bytes (i.e. target bits).
Relocate Dogecoin reward calculation to independent class

This moves the Dogecoin block reward calculation into its own class, in the same style as used
for Namecoin. Additionally this corrects post-600k block rewards for Dogecoin.
Add next proof of work difficulty target calculation.
Corrected rounding of modulated time values for Dogecoin difficulty calculations
clean up address and script types

this makes for consistent naming of the address/script types everywhere,
gives us some more flexibility to introduce new types,
makes #encode/decode_address more generic and
highlights the importance of carrying the address type along the hash160,
while still preserving the old APIs for compatibility

only change is the return value of Script#type
fix block builder target comparison
fix regtest proof_of_work_limit
tx builder: option to add extra fee on top of the calculated minimum fee
key regenerates pubkey after setting privkey
minor fix in CommandClient
Script #get_keys_provided for multisig scripts
script: leave nil object when address cannot be decoded from pubkey
option to add nid to tx hash/json output
documentation: update default DB config (#117), tip4commit badge, formatting, typos
specs: fix loading of minitest (#118)