Copy-edit imagej-updater's ByteCodeAnalyzer

This commit brings the ByteCodeAnalyzer from imagej-updater into SciJava
common. The idea is not so much to move it here, but to modify it for
use with the annotation indexer.

To this end, the ByteCodeAnalyzer's fields, methods and inner classes
were all restricted as much as possible, and the class itself was made
package-local, to make clear that this class is not meant to be part of
the official API of SciJava common.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Teach the ByteCodeAnalyzer to extract annotations from .class files

The result is a map suitable for use by the annotation indexer.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Use the ByteCodeAnalyzer to write the annotation index

Instead of loading the classes, we read the annotations directly from the
.class files. This has two advantages over the previous method:

1. We avoid polluting the ClassLoader with loaded classes (which can be
   problematic e.g. when ij1-patcher wants to patch the classes before
   loading them at a later stage).

2. It is no longer necessary for the dependencies of the classes to be
   on the class path (though that is only true for the classes, not for
   the annotations).

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