switch over to parse_data_from_io and remove old string parsing methods

  keep it downward compatible though..
remove ppcoin parsing and serialization support

  calling Bitcoin#network_project takes 2% time when parsing 200 blocks just for ppcoins protocol changes. i don't like it and want those 2% back ;)
minor payload generation speedups

  but remember that `a << b` changes `a`. use `"" << a << b` if you need `a` again.

    require "benchmark"
    t = 100_000
    Benchmark.bmbm do |x|
      x.report("join"){ t.times{ a, b, c, d, e, f = "A","B","C","D","E","F"; [a, b, c, d, e, f].join } }
      x.report("<<"){   t.times{ a, b, c, d, e, f = "A","B","C","D","E","F"; a << b << c << d << e << f } }
      x.report("+"){    t.times{ a, b, c, d, e, f = "A","B","C","D","E","F"; a + b + c + d + e + f } }
      x.report("+="){   t.times{ a, b, c, d, e, f = "A","B","C","D","E","F"; a += b += c += d += e += f } }
    end

    # =>

    Rehearsal ----------------------------------------
    join   0.360000   0.000000   0.360000 (  0.353145)
    <<     0.160000   0.000000   0.160000 (  0.163171)
    +      0.170000   0.000000   0.170000 (  0.170922)
    +=     0.160000   0.000000   0.160000 (  0.157429)
    ------------------------------- total: 0.850000sec

               user     system      total        real
    join   0.150000   0.000000   0.150000 (  0.156188)
    <<     0.100000   0.000000   0.100000 (  0.107309)
    +      0.130000   0.000000   0.130000 (  0.130465)
    +=     0.140000   0.000000   0.140000 (  0.134390)
speedup Script#binary_from_string and Script#to_string

  perftools.rb graphs showed that 48% of the time during parsing/serialization roundtime was spent in Script#binary_from_string

  improving Script#binary_from_string resulted in faster code and only 8.5% time in that method. but showed that now to_string spent 25% in Script#to_string

  improving Script#to_string resulted in faster code and only 8.6% time in that method.

  finishing with this new spent time distribution:

    13.3%  Bitcoin::Script#parse
    13.3%  JSON::Ext::Generator::State#generate
     9.5%  Class#binary_from_string
     8.6%  Bitcoin::Script#to_string
     5.6%  Module#pack_var_int
     5.5%  Digest::Instance#digest
     4.2%  Digest::SHA256.digest
     3.5%  Bitcoin::Util#bitcoin_hash

   http://l.uphnix.de/bitcoin-ruby__parsing_tests__git_tree_fb7ad4368436313292899e0b12f5f006ede7a1ac.svg
Merge remote-tracking branch 'upstream/master'
fix p2sh with non-standard OP_CHECKMULTISIG from testnet3

  found in testnet3 tx: d3d77d63709e47d9ef58f0b557800115a6b676c6a423012fbb96f45d8fcef830

  two changes along with that fix:
    - change how sign_input_signature takes an optional forced script: binary instead of string format now. (faster, less conversion)
    - drop signatures before passing to sign_input_signature. dropping them inside there still works for backward_compatibility though.
remove BIP_0017: OP_CHECKHASHVERIFY
merged upstream changes
new
new