Refactoring Commands

Now that we have the `commands` package set up, it's time to move everything over to it. This PR is currently not ready for merge, just setting it up for CR.

The basic scope of this PR is as follows:
* Set up transports based on `commands` package (HTTP RPC server/client, CLI command handling)
* Refactor existing commands for the new API (won't be a 1:1 mapping, commands will change)
* Make changes to `commands` package when necessary
This is somewhat like the flags package, which does so on purpose to highlight that if its not a bool, we should definitely panic. 

BUT if any of this panic-y code ever gets executed daemon side, a panic is precisely not what we want. (we might also consider not panicing altogether, and instead returning a nice, human friendly error)