Commands Refactor Part 2

We split #196 in two parts. this is the second. (#262 is the first). This builds on all the changes to commands/.
> We could do away with NewDagFromReader 

Let's keep it. it's useful to build a DAG without dumping it into disk. we'll need this for plumbing commands.

agree the naming should be clearer.