Make FormatReader's RandomAccessInputStream transient

This prevents Kryo from throwing an IllegalAccessError on every memo file.
Previous versions of Kryo did not require this, but upgrading to 2.24.0 makes it necessary.
Add reopenFile() as an API method in IFormatReader

This allows any underlying file handles that are expected to be open when
setId returns to be reopened.  This handles the case when a reader is
initialized via memo file, or when close(true) was called.
Add a new test for determining memo file validity
Update readers to make RandomAccessInputStream fields transient

This should allow the new memo test to pass, as well as reopening
relevant streams after a reader is initialized from a memo file.
Store memo files in a unique tmp directory
Log the memo file size during testing
TIFF reader: reinitialize the input stream as well as the TiffParser
Fix several remaining memoization issues
IFormatReader: Remove deprecated getChannelDimLengths and getChannelDimTypes

The only reader overriding the default implementations was ICSReader.
This has been updated to use ModuloC, which copes with the case
where all channels are of the same length.

The users of these methods (plugins DisplayHandler, ImagePlusReader,
LociFunctions and BFVirtualStack) have been updated to make use of
ModuloC.

These methods have been dropped from all implementors of IFormatReader.
IFormatReader: Remove deprecated getCoreMetadata
Flake8 configobj.py
Flake8 util.py
Flake8 ome.modeltools.cconfig
Flake8 ome.modeltools.entity
Flake8 ome.modeltools.exceptions
Flake8 ome.modeltools.generateds
Flake8 ome.modeltools.language
Flake8 ome.modeltools.model
Flake8 ome.modeltools.object
Flake8 ome.modeltools.property