IJ1Patcher: do not rely on imagej-legacy.jar being in the class path

The imagej-legacy classes are not necessarily in the same class path
as the LegacyEnvironment at runtime patching time.

Therefore, the previous fix to detect the presence of the imagej-legacy
classes (which was not tested properly before pushing to master
prematurely) did not work as expected.

Instead, let's detect the presence of the respective .jar files in
the jars/ subdirectory of the location specified by the system property
'ij.dir'.

If the system property 'ij.dir' is not specified at all, let's assume
that we're not even running in an ImageJ.app/ or Fiji.app/, and as
a consequence let's assume that the user has no version skew at all.
This is the case e.g. when running the integration tests of fiji-compat
itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Give the user a chance to figure out what broke the runtime patching

When runtime patching with the current LegacyEnvironment fails, and
likewise with the previous LegacyEnvironment, and even falling back
to fiji-compat's pre-ij1-patcher method, let's at least output a
stack trace to give the user (who might be a developer) a chance
to figure out *what* exactly went wrong, and where.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Avoid depending on imagej-legacy when falling back on ij-legacy

With the switch from ij-legacy to imagej-legacy, we need to use
interfaces that now live in a different package. The previous attempt
to re-instate support for the former package name, however, *still*
depended on the new package name: by letting OldLegacyEditor extend
FijiLegacyEditor (that implements the interface in the new package
name), we sadly guaranteed that the OldLegacyEditor class could not be
loaded at all in the intended situation (i.e. when the interfaces in
the new package are unavailable).

Hence, let's bite the bullet and just copy code into the already
deprecated classes, and have fall backs that actually fall back in
the case where ij-legacy is available, but imagej-legacy is not.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'fix-fall-back'

This branch fixes the prematurely-merged patches to fall back in case
of version skew between fiji-compat, ij1-launcher and imagej-legacy.

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