WIP: FIXME: bump to ij1-patcher version 0.9.2

We need it for the new interceptCloseAllWindows and disposing hooks.
DefaultLegacyHooks: make closeAllWindows do more

When ij.WindowManager#closeAllWindows() is called, there are some
windows that it fails to close down. In particular, any non-Frame
non-image windows such as PlugInDialogs are not handled. For example,
the ContrastAdjuster spawns a new thread which will only terminate
when the ContrastAdjuster window is disposed, but the
WindowManager#closeAllWindows() method will not do that.

Further, ImageJ1 does not grant the user the opportunity to confirm
dismissal of certain types of windows. Specifically: under certain
circumstances, any non-image window which is not an
ij.plugin.frame.PlugInFrame, ij.plugin.frame.Editor or
ij.text.TextWindow will be forcibly dismissed via its dispose() method.

See:
https://github.com/imagej/ImageJA/blob/v1.49c/src/main/java/ij/WindowManager.java#L391-L401

As such, and keeping in mind that ImageJ1 is intended to run as an
end user application in its own dedicated JVM, this commit makes the
closeAllWindows routine go the whole nine yards, and really close down
_all_ Windows in the JVM, while _always_ giving the user the opportunity
to cancel closing them down. Of course, it would be ideal to close down
only those windows associated with ImageJ1, but unfortunately we have no
way of knowing for certain which windows those are, since an ImageJ1
plugin can create and show any arbitrary Windows of its choosing,
without registering them with the WindowManager.
When shutting down IJ1, dispose the context too

There are essentially two ways ImageJ1 can be shut down:

1) From the ImageJ1 side; i.e.: ij.ImageJ#quit()
2) From the SciJava side; e.g.: LegacyService#dispose()

When IJ1 is shut down via its quit() routine, it should be done
"softly", asking the user to confirm the closure of various windows,
etc., before finally disposing of ImageJ1's resources as well as the SJC
context. System.exit should be called under exactly the same
circumstances as when IJ1 would normally do it.

When IJ1 is shut down via the legacy service, it should be done "hard",
without prompting the user to confirm anything. This form of shutdown
should not trigger a disposal of the SJC context, since A) it might
already be in the process of being disposed; and B) if it isn't already,
then it is almost certainly not desired for it to happen.

This change makes sure that when IJ1 is shutting down in the former
case, the SJC context gets disposed too, but that when IJ1 is shutting
down in the latter case, an SJC disposal is _not_ triggered.