Using a constrained Name for namespaces names

This is in preparation of the `DirPath/FilePath` update.
I think we have followed the pattern of creating a case class for types which have specific properties when generated through an arbitrary. If this implicit disappeared or was changed in a way which meant it wasn't picked up, it would be difficult to detect.