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.
There are a couple of these.  I agree it seems pretty verbose to have these but they are used as iterators.