Re virtual dom focus

A new take on the noting functionality. Still a WIP.

What's new:
- [Virtual DOM](https://github.com/Matt-Esch/virtual-dom) and related libraries
- Created a `VFocus` "class" which makes it possible to move around the Virtual DOM tree.
- Integration tests.
- The approach is different in the sense that we only ever wrap text nodes. This means we can do things in a more sequential way and care less about what the user has selected. One note is made up of one or more note tags. A note is defined as the sum of all note tags that are adjacent to each other (have abandoned ids since it's going to be more trouble than it's worth given our feature specs). The beginning and end of a note will be designated by a class or data attribute.
Not particularly urgent ... but I think some of the code could be explained with comments a bit better. For example, it's not immediately obvious why it's note.length - 1 above. Some of the code is pretty complex and could do with some additional explaining. No reason it can't be done in the next PR though