JsFile: Allows for file-wide jscs configuration 

Fixes #487

- [ ] File config should only be the first line in the file. Currently it chooses the first seen, which will conflict with #486 
I think our only option here is to save a hashmap of rule names  to rule constructors inside of `StringChecker.registerRule`, so that way when we detect a file specific config, we can construct new instances of those rules with the config specified, and replace them in `this._activeRules`.

Then afterwards, swap back in the original rule instances to `this._activeRules`.

This allows us to not have to worry about managing lifecycle events when we're in a specific rule.

@markelog thoughts?