Fixing: Updating FS URIs to fix minor problems.

This commit fixes and restores defb8bd64ed77c7841fde5ea8c5904074c26d9f6.
URIPattern had a bug, where hierarchical URIs would try to match opaque
URIs. There was a check when the pattern was opaque, but when the
pattern was not and the potential match was, a NPE would get thrown when
trying to split the path (because opaque URIs have a null path).

Original commit message:

When the URI path is relative and empty or null, it should be resolved
to the current directory, not the FS root.

Because URIs are matched in order of registration, the opaque URIs
should be added last so they don't accidentally consume valid
hierarchical URIs.

Also, this fixes the use of FileSystemDatasetRepository.Builder, which
should not use fileSystem. It now uses qualified paths instead.