Implement recursive indirect block creation for DAGs

Also cleaned up a bunch of code related to building and reading DAGs
Oh! just saw the splitter is initialized with a block size. diregard the first comment. well maybe this would be more readable by others:

```Go
blocksize := 512
splitter := &chunk.SizeSplitter{blocksize}
nblocks := 2
nbytes := blocksize * nblocks
```