Better configuration, plugin support

What I did for this pull-request:

* Remade the configuration: now it looks simpler, cleaner, straight.
* Achieved 100% test coverage for the configuration.
* Prepared sample changes for pluginization: https://github.com/jscs-dev/jscs-jsdoc/pull/14
* Created plugin support.
* Wrote tests for plugin support.
* Simplified CLI logic a bit.

@mikesherov, @markelog, @mrjoelkemp, please take a look.

(I will squash the changes before the merge)
Did you mean `Invalid` as `Legacy` or `Deprecated`?
I think we should think here about format changing.
Let's say:
```js
{ // legacy
  "requireSpaceBeforeCurlyBrace": true,
  // actual
  "requireSpaceBeforeParentheses": { onlyTomorrow: true }
}
```
Does this method would return only new name or also a replacement?