Refactor Low Level Utilities

This PR abstracts all low level utils from note-vdom, tests these utils and includes refactored methods.

### QA
None really, everything should work as normal.
Yeah I can do, I wanted to reduce the impact of this work on other parts of the application so I abstracted them out as they were.  I'd be much more willing to remove these after I've been through the rest of the plugin, does that sound okay?