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.
I think you should join this file with findAllNotes as splitting them means the cache needs to be maintained across multiple files and it's less obvious that this module is just meant to assist the find all notes. Also won't the caches now be separate across these modules?