"Description" help text + general cleanup

Squashed commits:
[f6d094a] PR review changes
[cdb4485] description help text for arguments

- removed unused `help.bannerFor()`
- updated some JSDoc
- option defaults no longer display if default value is an empty string
- rewrote unit tests for `help.help()` function
    - the old tests made it difficult to debug since Mocha would only report truthiness
    - using the updated method, we now compare strings and can easily see any differences as reported by the assertions
    - I also elected to ignore extra whitespace here, because I want to test the content; not the `text-table` module's output.
[8ad7e91] general cleanup: removing some unused vars, updating some JSDoc tags & comments, simplified expression
Merge pull request #534 from boneskull/master

Small updates to "help"
Fix a RunContext so it run only once

There was a race condition causing a generator to run multiple times if
the temp directory rimraf action was too fast.
Feature: RunContext mock prompt by default

Also ensure helper.mockPrompt keep the prompt asynchronous and keep the
origin reference to the initial prompt method when called multiple times.

Fix #539
Fail build if static analysis doesn't pass
Fix style guide errors
Default options to `undefined`.

This matches a JS function, where params that are not matched default to
undefined.
Convert Generator#_options to an object

Additionally, use `_.reject()`, instead of `_.filter` with a not.
Add Generator#parseOptions

`#parseOptions` will take the "private" #_args and add all the
generator's options to the #options object. Supports nopt's short hands
using the `alias` key of an option.

Depends upon getting the full arguments from the yo cli, not just the
remaining arguments.
https://github.com/yeoman/yo/blob/37ae024f0105311945c98aef7a369f450d71fe
9c/cli.js#L20
Test that `#argument`s will be updated

Since `#option()` rewrites `this.args`, make sure any `#arguments` will
update their values afterwards.
Remove unneeded feature
Use a getter for positional arguments

Since setting an option can change the positional arguments, use a
getter/setter.
#parseOptions() when calling #option()
Merge pull request #524 from cloudspace/options

Allow Options in Generator