When proxying multiple interfaces, proxy all their annotations

If two interfaces contain the same method, we can easily proxy both, but
we have to take care to proxy both interface's annotations, not just
one.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Assembler: support writing out annotation default values

This makes sure that Proxy instances of annotations inherit the default
values of the annotation's methods.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Use the default value in annotations' proxies

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
AnnotationInvocationHandler: avoid calling Method#getName too often

This is only a cosmetic change, but we should not call getName()
over and over again ;-)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Make sure that test classes have access to the annotations

Earlier, if the annotations were already up-to-date (but
Annotations.class not), the compilation would fail.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that Proxy instances have access to annotations' default values

For quick access, the sezpoz library stores lists in
META-INF/annotations/ of classes that have been annotated in a
special way.

To support the use case where the annotations actually changed since
sezpoz stored said lists, sezpoz then creates proxy instances for the
annotated classes to be able to provide some backwards compatibility:
as long as there are default values for the new annotations, everything
is groovy.

Therefore, let's make sure that proxy instances inherit the
annotations' default values.

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