JsFile: Allows for file-wide jscs configuration 

Fixes #487
We need to be really careful that rules are prepared to be configured more than once. This implies that state must not linger between calls. 

Suppose `requireTrailingComma: { ignoreSingleValue: true }` was the default configuration. Had I kept line 14 above), `this._ignoreSingleValue` would be `true`. If a file-wide configuration (using the same checker instance) sets `requireTrailingComma: true`, then during the reconfiguration of the rule (to use the file-specific config) would not unset `this._ignoreSingleValue`. Hence, the old state would have leaked into the new configuration and active rule set.

My point is that we need to either have a base cleanup function that deletes all internal state for the rules (only called during the use of a file-wide configuration), or we keep a careful eye on new rules defining stateful variables as the last part of the rule's configure() function.