Switch over to use github.com/maruel/subcommands.

This separates the library code to manage subcommands from the actual
application, so that subcommands can be reused in other projects.