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)