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)
right before this, we can do:

```
if (typeof rule === 'function') {
  rule = new rule();
}
```

This would avoid having to do:

```
configuration.registerRule(new (require('file'))());
```

and allow us to do:

```
configuration.registerRule(require('file'));
```