Support non-namespaced slash commands
Allow any slash command to be called either by its own name (e.g.
/incident) or namespaced under woodhouse's global slash command (e.g.
/woodhouse incident).
This is handy for developing new slash commands without having to edit
the woodhouse(-staging) slack app, which requires approval by admins.
Arguably, for new commands that are not replacing existing workflows,
the global namespace offers superior UX by requiring the user to
remember nothing other than /woodhouse help to see all functions.
If we decide that we don't want the global namespace at all, the code could be simplified slightly by removing the subcommand dispatch logic and moving the routing of commands into the mux.Router, changing the HTTP paths of individual commands (/slack/incident, /slack/echo, instead of /slack/slash for everything).
Document some gotchas about slash commands in general.
Document a flag that was accidentally omitted before: incident-slack-channel.
Document where to view Woodhouse's logs in production
Related: https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/11573#note_429453733
Draft until !20 (merged) is merged, as this MR is built on top of that and will need rebasing.
FYI @brentnewton