Add a test for checking that the required directory count is valid

We can't reliably test for the required directory count being too large,
but the test will fail if the directory count is too small.
MDBService: fix file initialization for mapped files
InCell: put the current file first on the used file list

This is important for datasets with .im files, which are not usable by setId.
L2D: remove unnecessary override of getRequiredDirectories

All files are in the same parent directory, so there is no need to
preserve additional directories.
Visitech: use Location instead of File
Fix Zeiss TIFF reader and CaseInsensitiveLocation to work with mapped files
Prairie: use Location and RandomAccessInputStream instead of File
FV1000: fix handling of mapped files
Tidy up the required directory test
Fix use of File.separator in a regex
FV1000: fix .pty stream detection for .oib files
Final set of fixes for testing getRequiredDirectories
Make sure that the file to initialize is non-null
Merge remote-tracking branch 'origin/develop' into required-directory-test
Zip: make sure that the file mapping is correct during openBytes

This prevents openBytes from failing if close() was called on a
different ZipReader initialized with the same file.
Last round of fixes for working with mapped files

This is necessary to make the required directory tests pass.
Fix findbugs complaint
Location: fix handle type detection for mapped IDs
JPEG: fix used file reporting for "fixed" files

The file mapping is a little weird in the case where markers need to be
stripped, so this forces the used file list to consist of only the
original .jpg file.
cpp: Adapt to Boost 1.56 optional changes

- Explictly dereference optional values
- Use double negative for comparing to true