A reader for Yokagawa CellVoyager datasets - WIP

Yokagawa CellVoyager microscope can acquire large areas composed of
several tiles. Each plane (1C, 1Z, 1T) is stores as one plain tiff file
per tile.

Apparently:

- The stitching is done border to border. There are no
subtleties in arranging the tile in space. Mistakes can be seen even in
the proprietary software. Maybe some registration is done prior to
saving; we could not assess for sure.
- The CellVoyager is a spinning-disk. Individual tiles are corrected for
uneven illumination, apparently using a circular gaussian, prior to
saving. This can be seen on densely labeled tiles by changing the display
min&max.

The metadata and tile positioning in space are stored in a first xml
file. The list of tiff files composing the dataset is stored in another xml
file. This reader expects to be pointed to a file in the directory containing
the xml files.

What it does now:
- Open 5D datas, stitched on the fly. That is: if a plane is made of 4
  fields of 920x920 pixels arranged in a square, it will return a plane
  of 1840x1840 pixels.

Current limitations:
- OME metadata is not set yet.
- Only reads the first Area of the first Well yet.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: read and use the metadata from malformed ome.xml file

Thanks to the kind help of Melissa and Josh.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: add it to reader.txt

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: use and populate OME xml metadata

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: handle single Z-slice images correctly.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: WIP: deal with multiple wells x multiple areas

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: deal with using common area definition for all wells

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: fix metadata reading.

I just needed to copy OME Md to the store.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: do not use the image index anymore

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: return the correct file used to build a series

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: Source folder should use the absoluteFile method

From Melissa comment #1.
Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
B
B
CellVoyagerReader: use slf4j to log throwable

From Melissa comments #2 to #8
Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
CellVoyagerReader: remove unused methods

From Melissa comment #9 & #10.
Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
CellVoyagerReader: warn if we have to open an unknown file version

I bet two smarties that the device we got (at the Pasteur imaging
facility) is going to be severely updated and that most of the
problematic XML tags will get fixed. Since I cannot foresee the future
that well, I put a warning to future users.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: fix incorrect IDs found in the OME.XML file

As per Melissa comment.
The trouble is that this edit does nothing at all: putting back the ID
manually through the MetadataStore or through the OME MD is simply
ignored.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyager: make sure that LightSource IDs are set to a valid LSID
Merge pull request #1 from melissalinkert/lightsource-fix

CellVoyager: make sure that LightSource IDs are set to a valid LSID
CellVOyagerReader: added GPL2 preambule.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: add javadoc

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
CellVoyagerReader: better handling of possible null service

Complaint from findbugs, reported by Josh Moore:
"findbugs is complaining (correctly) that omeMD could be null here if
service is null:
http://hudson.openmicroscopy.org.uk/view/Failing/job/BIOFORMATS-merge-develop/616/findbugsResult/new/HIGH/
Likely this whole block (481-514) could be simplified down to a single
try block which throws if omeMD is left null."

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>