Re noting bugs

Fixes a number of bugs related to unnoting part of a note:

1. `state()` was sometimes returning the wrong state. Which meant an Exception and that nothing would happen.

2. A `<SPAN>` that we insert for caret positioning caused styling issues. Changed toa  zero width char. Not ideal, and we should have a look at that later. Should be good enough for now.

3. In `unnotePartOfNote` the arrays we zip together would sometimes be out of sync. Changed them to use the same source of data for that.

4. The fix for the previous point also sorted out a caret positioning issue where the caret would be placed at an incorrect position after unnoting a part of a note.

5. Previously it wasn't possible to select the entire contents of a note and unnote it.

![](https://i.chzbgr.com/maxW500/3088628992/h8113C512/)