Add requires

Adding the concept of "required options". Adds dependency between options such that:

$cmd = new Command();
$cmd->option('test')
  ->requires('other');

So that if "--test" is defined, "--other" must be also otherwise an exception is thrown. Options can also have multiple dependencies:

$cmd = new Command();
$cmd->option('test')
  ->requires(array('other','option'));

Where both "--other" and "--option" must be defined.
Unit tests are included.