FileSystemOptionsFactory: add copy to read/write option translations
Implement more options checking
FileSystemOptionsFactory: fill in default open options when none are passed

Normally this is the responsibility of either Files or FileSystemProvider;
however, we substitute ourselves to FileSystemProvider, so we need to do it
ourselves.
More options check
FileSystemProviderBase: check link options on relevant methods

Untested though.
FileSystemProviderBase: a lot of changes

Make a lot of checks common to all filesystems within this class. Also add
documentation and TODOs. Lots of TODOs.
Javadoc fixes