Support overriding showInvisibles

Adds support for overriding `showInvisibles`.

Since the targeted function lives on `EditorView`, I needed to refactor the existing code to pass around `EditorView` instead of `Editor`. In an attempt to minimize how ugly this made the code, I leveraged CoffeeScript's _destructuring assignment_ support.

I'd just write these like this:

```coffeescript
showInvisibles: (view, value) -> view.setShowInvisibles(value)
softTabs: (view, value) -> view.getEditor()?.setSoftTabs(value)
```

I think it simplifies the interface.