merge back to trunk, i like this structure enough to forward with it, cleanup still needed and lots of tests are currently broken
update code to use ImmutableArray.Builder
start working on structure to store block transactions and read them
making progress on streaming block elements
test out merkle performance
add  a couple tests on bad data
update block read to use ImmutableArray.Builder as well
add CreateOrOpenDatabase methods to block & chain state storage
ensure jet database is properly detached when opening it fails, add depth column to block structure
implement some basic cursor caching
put a sensible limit on missing block requests
put a sensible limit on block requests per peer, log missing block requests
fix missing blocks being queued all the way to the end of the chain, log when requests for missing blocks are marked stale
take the average block request time into account when determining stale requests, helps with duplicate block downloads
first crack at wiring the new block structure into the utxo calculation
move transaction decode into the read
small optimization, save a utxo lookup when adding
look ahead on both the chain and the block txes, fix duplicate block read
in-memory utxo should be sorted by tx hash, same as on-disk
fix streaming block read to properly throw a missing data excpetion when no elements are present