Add datChscn
Add datMapN
Protect against dat1.h being included multiple times
Fortran locator I/O routines

Note these differ from the HDS implementation in that the
Fortran locator is a string containing the pointer address
of the corresponding HDSLoc*. The pointer is simply read back and cast
to an HDSLoc* when importing the Fortran back into C.

The scheme of copying the entire structure into memory would
have worked but currently an HDSLoc* is much larger in this
implementation than in the original HDS and this seemed
more efficient.

Note that we now fix DAT__SZLOC at 16 characters. This is
enough for a %p sprintf of a 64-bit pointer and matches the
current size as used by HDS.