block and tx parsing speedup

  benchmark results parsing last 3000 blocks: 360 down to 50 seconds!

  switch to using io streams (with read, pos and seek) instead of creating lots of new string with `field, buf = buf.unpack("Ia*")`

  keep the backwards compatible methods for now and remove them at some point.