Volume namespaces - fixes 771

Fixes #771.

Some temporary code is in place so this doesn't break the rest of the system.
Saying "three parts" here might confuse the reader. We're only unpacking two parts and then splitting the name further by way of `VolumeName.from_bytes`. The `ValueError` may also be raised during ascii decoding in that function. Perhaps this this comment should be clearer about the expected sources of `ValueError` .