Add a helper for Eclipse

Eclipse is a bit challenged and challenging when it comes to following
the Java standard. For example, in the default mode Eclipse does not run
any annotation processors (as it would be mandated by the Java
specification).

To compensate for this, we simply run a custom annotation processor
whenever we encounter at Index.load() time to handle the case that there
might be some annotation index that is out-of-date.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
EclipseHelper: Support incremental annotation indexing

... which includes removing annotations that are now obsolete...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Index annotations even when running tests in Maven

There is an unfortunate interaction between Eclipse and Maven when the
developer runs the tests using Maven after Eclipse compiled code, failing
to run the annotation processors. The annotation index breaks down in that
case because no annotations got indexed.

Fix this by running the index annotation even when the tests are run from
Maven's surefire plugin (as opposed to from within Eclipse).

This will help us also when merging the annotation indexer into
scijava-common itself, because scijava-common has annotations itself that
need to be indexed, but after the merge, scijava-common itself is the
annotation processor (which needs to be disabled in order to compile
itself because of a chicken-and-egg problem).

While at it, remember which directories we already looked at (and clear
that cache when running the EclipseHelper unit test).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'apt' into 'eclipse'

This branch provides a proper annotation processor.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'sezpoz-compat' into eclipse

This branch adds backwards-compatibility with the way scijava-common did
things previously: it used SezPoz to generate the annotation indexes. We
still want to maintain backwards compatibility with those previously
generated annotation indexes (mainly so that older artifacts that might
still not be updated on one of the ImageJ update sites are still working
correctly).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>