[RFM] Added Event Subscriber

This PR adds an event dispatcher to the application and adds some custom events.

The idea is to decorate commands with listeners rather than throwing everything into the base command:

````php
class FooCommand implements GitHubFeature
{
//...
}
````

These subscribers then subscriber to events like:

````php

class GitHubSubscriber extends EventSubscriber
{
  //...

  public function decorateDefinition($event)
  {
     $command = $event->getCommand();

     if (!$command instanceof GithubFeature) {
       $commnad->addOption('dry-run', null, // ...);
       $command->addOption('repo', 'r', // ...);
       $command->addOption('org, 'o', // ...);
     }
  }

  public function validate($event)
  {
     $input = $event->getInput();
     // validate the input
  }
}
````

I also found out that `Helper` classes can implement a `InputAwareInterface` which allows helpers to access the input. So in this PR I make the `TableHelper` work automatically with the options provided by the `TableSubscriber`.

I am thinking that we could do this with alot of cross-cutting concerns..