jhm/naming: Pull <jhm/naming> into the base generic path manipulation library it is/was <base/path>

This also updates all users for the new interface. Generally the new interface simplifies usage.

Patchest also performs some drive-by cleanups.