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
separate Name field from Usage on Command struct