fix: getStream does not always log exceptions

getStream was almost always catching and logging an exception. It now
does a more thorough check to find the input stream if available, and
returns null if not, without throwing an exception (unless there is a
legitimate reason now).
fix: updated test-suite and bio-formats build.properties
wip: made AbstractLegacyAdapter O(1) instead of O(N)
fix: avoid creating arrays more than once
fix: added TranslatorService.translate convenience method
fix: OMEMetadata always has an OMEXMLMetadata root
fix: added OMEXML tutorial
fix: Parser NPEs in SCIFIOReader
fix: Format Plugins typed on concrete class
fix: implemented DiscoveryTutorial
fix: ReaderFilter returns appropriate DatasetMetadata
fix: AbstractReader throws an exception if requested plane too large
fix: ByteArrayPlane uses DataTools.allocate
fix: added T1BReadingTiles tutorial