Initial implementation of RefreshableFileChannelProvider

A class the either reuses or reopens a FileChannel to a Path
Code cleanup
RefreshableFileChannelProvider implements Closeable
Convert everything to implement AutoCloseable

It will be easier to make the exception signature smaller
later on, but expanding it will be hard.
Implement BasicPathDestination for output to a file
Make test message enums private
BasicPathDestination only writes once per record

This avoids a partial flush, which helps to protect the
integrity of the physical log file.
OpsLoggerFactory uses a BasicPathDestination for paths

This destination is optimised for logging to files — it
uses a FileChannel for locking, and periodically closes and
reopens the FileChannel (currently, every 100 milliseconds)
to make it work better with log rotation by external scripts.