Added Event Subscriber

- Adds an events for when commands are configured and initialized.
- Allows subscribers to add and validate common configuration options
- Added table options `--tabe-layout`, `--table-no-footer` and
  `--table-no-header` options for table via. subscriber.
- Made `GitHelper` helper, refactored all git logic into, refactored as
  required.
- GitHub configuration now handled globally by GitHubSubscriber