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.