add support for custom cli options

Make it possible to add custom options for each task.

# deploy.php
```php
task('deploy:update_code', function(\Symfony\Component\Console\Input\InputInterface $input) {
    $branch = $input->hasOption('branch')?$input->getOption('branch'):get('branch', false);
...
})->desc('Update local codebase')->option('branch', 'b');

task('deploy', [
...
])->option('branch', 'b');
```

# cli
```
dep deploy -b develop
or
dep deploy --branch=develop
```