Implement recursive indirect block creation for DAGs

Also cleaned up a bunch of code related to building and reading DAGs
But youre still right about linearly searching over 8192 links. Thats painful.