standardize main usage formatting
Parse app flag globally but from command options

Instead of `hk -a myapp cmdname`, this reverts back to the
`hk cmdname -a myapp` syntax. However, parsing the `-a app` param is
still handled by the main executable rather than the subcommands or
plugins.
let commands say they need the app param
disallow global args
stubs for lots of future commands