`.getCurrentState()` & `.setSingleSelectionRange()`

This is for #512.

It should return an object that contains the output of `rawHtml()` and perhaps the selection.
It is true the `undefined` should never have existed and only `null` should have been.

Wouldn't this work when it is `undefined`?

```
if (state.selectionRange) {
    //perform magic
}
```