HBASE-26483. [HBOSS] add support for createFile() and openFile(path)  (#35)

* HBASE-26483 [HBOSS] add lock around openFile operation

* Rebase onto 3.3 only code
* add cleverness about whether to pass filestatus down to s3
  (that is safety checks except if something other than hive is
   actually wrapping s3a file status entries)
* lots of improvement on passthrough, including of getters, so that tests
  can see what happened.
* test explicitly makes sure that on s3a, non s3a status entries don't get
  passed down; hadoop 3.3.x releases may fail there, whereas on later
  builds they just ignore it (as does ABFS and its status type).
* TestZKLockManagerConfig hardened to work in IDE test runs with
   FS instance caching
* IOStatistics Awareness and passthrough; used in tests for logging.
* Adding the check that the FileStatus path must equal
   that of status.getPath before passdown, again, something
   the early openFile impls checked for (now they only validate
   the final filename element for equality).

Signed-off-by: Andrew Purtell <apurtell@apache.org>
19 files changed