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>