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 and it wouldnt hurt my feelings. The advantage to using it is that it has a clean interface, you give it a reader and it gives you a dag. The BuildDag class of functions requires a DAGService and a PinService in order to do everything it needs to in an efficient manner