Implement recursive indirect block creation for DAGs

Also cleaned up a bunch of code related to building and reading DAGs
oh, that's handy. `NewTimeSeededRand`. I should use that instead of the silly locked thing i put into `testutil`.