datMap: When learning from rec1_map_frame I didn't learn enough

"where" is meant to be initialized by the first mapped address,
not simply "0x0+pagesize". Now if the registration fails it simply
adds pagesize to the failed address and tries again. This actually
works.
datMap: Use VFD interface to get file descriptor

This only seems to be reliable in READONLY mode but it does mean
the file does not need to be opened separately. Also, this raised
the possibility that a mmapped buffer may or may not be associated
with a file handle that should be closed so we now flag that
state independently in the locator.
datMap: Allow pointer registration to fail 100 times

HDSv4 has no limit but this seems safer.