Release v2.2.0

After 2 long months and 6 RCs....

Highlights
----------

Major improvement for tracking performance: The LAP trackers are now based on
the Jonker-Volgenant solver, which performs better than the Munkres-Kuhn we
were using until then. Our initial tests report that this new version runs 2x
to 4x faster.

A major problem was found in the LoG detector: Because of a severe rounding
error, the LoG detector was not behaving as a true LoG detector, which strongly
hindered its accuracy and potence. The problem is now fixed and the accuracy of
the detector has vastly improved. You should now observe much better results
when using this detector: less spurious spots, better spot size sensitivity,
better sensitivity to faint spots. On its side, the DoG detector now handles
spots that lie on the border of the images better.  Of course, the results will
be different when comparing to v2.1.1.

We also took the chance to rewrite all the detectors from scratch, using the
latest development in ImgLib2. This prompted major performance improvement for
the detection process. Here are the results of a quick benchmark:

Detector  v2.1.1  v2.2.0  speedup factor
LoG detector for 2D images  13.4s 1.2s  x11
DoG detector for 2D images  3.5s  1.1s  x3
LoG detector for 3D images  291s  18.2s x15
DoG detector for 3D images  21.6s 15.1s x1.4
(This benchmark was done with the ISBI challenge datasets).

Complete rewrite of the way we handle modules in TrackMate. TrackMate now uses
SciJava and exploit its automatic discovery mechanism for modules. Practically,
it is now very easy to extend TrackMate, and you do not depend on us anymore at
all for anything. We could completely disappear and you would still be able to
extend TrackMate so that it suits your need, without requiring any of our help.
Several tutorials describe how to do this. This is made possible thanks to the
enormous efforts of the SciJava team. Thanks to them!

Improvements
------------

In TrackScheme, the tracks can be navigated through using the keyboard:
UP: previous spot in time.
DOWN: next spot in time.
LEFT: next sibling within the same track
RIGHT: previous sibling within the same track
PAGE-DOWN: jump to next track, same frame
PAGE-UP: jump to previous track, same frame

Major performance improvement when launching TrackScheme on a large models.

Major performance improvement when selecting/deselecting in TrackScheme

The 3D viewer is now in sync with manual modification. Any edit made to the
model is immediately echoed on the 3D viewer. This comes at a price: the 3D
viewer cannot be used for very large model in an efficient manner.

The user can now define a depth of drawing display setting, that limits the
number of Z-slices on which we draw the model. This is useful on very thick
samples where the drawing of all the data across all Zs can become confusing.

Minor improvement for the track display on the main view, for large models.

Ship a MATLAB function to import in MATLAB the tracks exported by TrackMate.

Warn the user if they feed TrackMate with a stack that has no time-points by
plenty of Z-slices. This is one of the main reason we get irrelevant bug
reports: By default, ImageJ considers that a multi-image file is always made of
1 time-points and many Z-slices. Whereas users mean to feed TrackMate with a
movie made of several 2D planes filmed over time. We now warn the user that the
dimensionality stored in the image might not be the one they expect.

Fine tune multithreading. Before this version, TrackMate was doing
multithreading during detection in the following way: We run the detection
process on as many frames as we have threads, and each frame is processed using
1 thread. This is suboptimal if we have a large number of threads, but a few
number of frames (e.g. 1 frame, 24 threads). This release fixes this: If we
have 10 threads and 15 frames to process, we process 10 frames at once, and
allocate 1 thread per frame. But if we have 10 threads and 2 frames, we process
the 2 frames at once, and allocate 5 threads per frame if we can. For this to
work of course, the detector must be multithreaded, which is the case with the
ones we ship now.

TrackMate can now load partial TrackMate files, and still display all the
information it could retrieve, instead of generating an error and quitting.
This is useful if you have file that contains the model section, but not the
settings section.

Improved user messaging when loading a file.

Spots can be colored by the features of the track they belong to.

Slightly better memory management for spot, edge and track coloring for large
models.

The GUI does not freeze when computing histograms.

Bug fixes

Fix a major bug with the DoG detector preventing to use it with a ROI.

Fixed a minor warning triggered when using the 3D viewer as the main view for
TrackMate.

When navigating backward in the GUI, the model is cleared when it is sensible.
This is made to avoid having "ghost" results floating over unprocessed images.

Fix several issues with zooming and decorations in TrackScheme. Fix a bug that
caused the sliders to disappear for the simple style and with some zoom levels.
Zooming should be now more efficient, and offers more zoom levels.

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