Base changes

This lays the groundwork for the new JHM implementation (PR for that shortly).

Adds / cleans up a number of different utility functions in \<base>
I swear I had done that... (A warning about that from some compiler testing told me it was an issue, which is why I then changed all of them to follow Swappable). Updating.