Volume namespaces - fixes 771

Fixes #771.

Some temporary code is in place so this doesn't break the rest of the system.
It may well be replaced by a `VolumeName`... but I'm not sure yet until #737 is implemented. `_to_volume_name` is going to be ripped out anyway, but I'd rather do it later with the final design rather than having to potentially do it twice.