feat(token): add first command: token

Besides the token command, this includes much of the underlying
design that all commands will build off of.
I tried to think of something else to say, and couldn't think of one. It should include the stacktrace, cause it will generate one in the `CliError` constructor.