Pluginization

**DO NOT MERGE**

This is for design review for plugin support.

Part of this task: https://github.com/jscs-dev/node-jscs/pull/672
At least we can make `registerRule` smart enough that if it receives a function, that it assumes it's a constructor:

```
configuration.registerRule(require('./rules/validate-jsdoc'));
```

Thoughts?