This commit includes a couple of thing:
- A chatops controller
- Mattermost::CommandService
- Mattermost::Commands::(IssueService|MergeRequestService)
The controller is the point where mattermost, and later slack will have
to fire their payload to. This in turn will execute the CommandService.
Thats where the authentication and authorization should happen. So far
this is not yet implemented. This should happen in later commits.
Per subcommand, in case of `/gitlab issue show 123` issue whould be the
subcommand, there is a service to parse the data, and fetch the
resource. The resource is passed back to the CommandService which
structures the data.