Modify ImageJ 1.x to avoid overzealous handling of NoClassDefFoundErrors

It was a noble idea to support the case where a class would be put
into <ij.dir>/plugins/<category>/<name>.class with <name> actually
not being in the <category> package but the default package.

However, that handling does not even try to verify that the class
that was not found is the one we were looking for.

As a consequence, missing dependencies lead to completely misleading
error messages that leave the user all but wondering.

Use Javassist to modify ImageJ 1.x to check for the class name and show
an exception window when detecting the 'missing dependencies' scenario.

Unfortunately, it seems that the javassist.expr.Handler cannot see local
variables, so we have to do with a static field (which is thread-unsafe).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Make the NoClassDefFoundError aware of Java3D

When the missing dependency is a Java3D class, we can suggest to call
the 3D Viewer to install Java3D. So we do that now.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'no-class-def-found-error'

This branch adds non-surprising error handling when a class could not be
loaded due to depending on a class in a missing .jar file.

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