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/.
And FWIW, i do like the concept of having objects that help dealing with passing around a `Node`, a `Config`, etc.