Add a reader to de-serialize JSON-formatted annotation indexes

While we do not have a writer yet, let alone a class to access the
index, this is the first step.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a writer that serializes annotation data in JSON format

So now we have a writer for it all. Actually, we have an abstract base
class that knows how to write annotations, but no code that discovers them
yet.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a real indexer

The DirectoryIndexer class knows how to parse a single class path element
(if it is a plain directory) and writes JSON-formatted annotation indexes.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add the @Indexable annotation

All annotations that are meant to be indexed by annindex need to be
annotated by this meta annotation.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add the Index class to access the annotation indexes

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

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a Java 6-compliant annotation processor

This is loosely modeled after the way SezPoz does it, for the obvious
reasons: SezPoz' goals and the goals of this here annotation indexer are
almost the same.

Therefore, the developer learnt a lot from inspecting the source code of
SezPoz' Indexer6 class and then went on to re-implement the part that
inspects the AnnotationMirror instances here.

Since we are building an annotation processor here, we need to switch off
annotation processing during the compilation.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add an integration test for the annotation processor

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
WIP: Add a helper for Eclipse

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