Support scoped settings

This adds support for scoped settings. All the settings are now scoped to language. `.source.jade` language defaults `removeTrailingWhitespace` to false.

Additionally, now you can override these in your config file on a per language basis. For example:

```coffee
'.source.gfm':
  whitespace: 
    removeTrailingWhitespace: false
    ignoreWhitespaceOnCurrentLine: false
    # ...
```

Closes #36
Without these, it doesnt event trim with `atom.config.set("whitespace.removeTrailingWhitespace", true)` cause of `ignoreWhitespaceOnCurrentLine`.