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/.
panic!!! @mappum be more careful. @maybebtc and I can't catch all of these. these assumptions are bad.