Add support for aliases

This PR adds support for aliases and custom help description.
It is now possible to do this:

```
require('gulp-help')(gulp, { description: 'you are looking at it' })
```

=>

```
[gulp] Starting 'help'...

Usage:
  gulp [task]

Available tasks:
  help     you are looking at it

[gulp] Finished 'help' after 1.23 ms
```

Furthermore:

```
require('gulp-help')(gulp, { description: 'you are looking at it.', aliases: ['h', '?'] })
```

=>

```
node_modules/.bin/gulp 
node_modules/.bin/gulp h
node_modules/.bin/gulp ?
```

=>

```
[gulp] Starting 'help'...

Usage:
  gulp [task]

Available tasks:
  help     you are looking at it. Aliases: h, ?

[gulp] Finished 'help' after 1.05 ms
```

And one last thing:

```
require('gulp-help')(gulp, { description: 'you are looking at it.', aliases: ['h', '?'] });
gulp.task('version', 'prints the version.', [], function() {
  console.log(1);
}, {
  aliases: ['v', 'V']
});
```

=>

```
[gulp] Starting 'help'...

Usage:
  gulp [task]

Available tasks:
  help     you are looking at it. Aliases: h, ?
  version  prints the version. Aliases: v, V

[gulp] Finished 'help' after 928 μs
```