fix memory leak in Bitcoin.regenerate_public_key
update dns_seeds and add checkpoints
add alert_pubkeys for testnet
fix Block#bip34_block_height
refactor Bitcoin::Script#get_multisig_addresses
add Bitcoin::Script.is_canonical_pubkey?
fix unpack in Bitcoin::Script#parse for OP_PUSHDATA2, OP_PUSHDATA4
fix script serialization roundtrips

  testnet3 has some scripts with evil handcrafted pushdata chunks like "\xed\x01\x00\xdd" which is OP_PUSHDATA2 with a length that should be OP_PUSHDATA1.

  bitcoin-ruby used to serialize it to "dd", but when trying to recreate binary from it again the result is "\x01\xdd" because no way the Script.binary_from_string knew the original payload used OP_PUSHDATA2.

  for these edge cases its now serialized to "<opcode-pushdata-value>:<length>:<hex_data>", so "77:1:dd" in the example case,
  but only for pushdata that isn't in the range of the pushdata length for backwards compatibility of script strings.
Block and TxIn: add convenience method
add Script::OP_RETURN
add Bitcoin#block_average_mining_time
use explicit endianness in un/pack

  makes bitcoin-ruby work on native big-endian machines too.
add missing opcodes and correct cast_to_bignum to parse/de-serialize/run testnet3 scripts.

  quite a big commit that took lots of on/off work, more to come..

  let's welcome the chunk of new script tests.
allow and set '02' compressed pubkeys
fix typo in TxOut#to_null_payload
fix serialization roundtrip for invalid script opcodes

   found in testnet3 transaction: 75171dbfa934ff5d163cdbdfb439db067286d2b35114c90edffd4fe9b85aabb7
adjust OP_CHECKMULTISIG

  found in testnet3 transaction: 76755b27e14bf737a418ab2891ebf0414b8643996aa23c38873b66d9ae9e9b9f (last input)
handle retarget with multiple chains / reorg across retargetting boundary