Refactor note-toggle (part 1)

This PR abstracts and tests wrapping and un-wrapping notes.  Ive also switched the add-class & remove-class functionality to use string operations.

### QA
- Be sure to test the expand/collapse notes functionality fully.
- Ensure create/remove notes work even on multi paragraph notes.
Yeah, you got me. Using split() etc seems a bit overkill but the only way I can see getting around this issue would be to add spaces .... feels hackey:

`'gu-note'.replace(/ gu /g, '');`

should we just go back to using arrays here?  The problem I see with the array approach is that multiple identical classes dont work without using `_.uniq()` on the array.