Using a constrained Name for namespaces names

This is in preparation of the `DirPath/FilePath` update.
@charleso It's a good idea to use a value class. I've updated the code with this and it makes the `namespaceAsString` method disappear because it's strings all the way down.