Change how the HDS root group is implemented

The initial design placed the HDS root name (as given to hdsNew)
in a group inside the HDF5 root group. For a name "TEST" the
HDF5 file looked like /TEST/ if it was a group and /TEST is the
root was a primitive. This was an inefficient use of the HDF5 namespace
and hdsOpen had to kluge this by scanning through all the groups
attached to "/" and hoping that the one it picked was the relevant
HDS one. This made it impossible to load HDF5 files that weren't created
by HDS.

Now the HDF5 root group "/" is the root of the HDS hierarchy. We now
store the name of the HDS root as an attribute of the "/" group and
use an additional attribute to indicate that a primitive dataset
is meant to be the root (by giving its name in the attribute).

Now when a file of name TEST is created it will be associated with "/"
and the root name attribute will have a value "TEST".

This required modifications to datName and hdsTrace to understand
that when they get to "/" they should read the attribute. Given that
they HDS root name is never used this seemed to be the sensible choice.

This change means that all previously generated HDSv5 files will
have to be deleted as they have one level too much in the hierarchy.
They will still trace correctly.
datThere: Tweak the error message