Implement git-style sub-commands

- split commands into separate files
- separate `options` for particular commands
- specific `help` generated for each command
- move cli logic into separate file under `lib` instead `bin`

Interaction with `user` command is a little different now, with options for `addRole` and `removeRole`. I'm sure we could get it to work as before, but maybe the options are better?