DefaultLegacyService: add event processing API

Added isProcessingEvents and setProcessingEvents. These set and return
ThreadLocal values for whether or not status events are being processed.

Note that this API is public but not really intended for public
consumption.
LegacyStatusBar: don't double process events

The LegacyStatusBar now takes advantage of the DefaultLegacyService's
API for setting and checking if a given thread is already processing
status events. If so, we know that we have already entered the given
method of the status bar on that thread, so it is the same event being
processed and we should not re-process it.

Doing so will cause endless numbers of threads to be spawned.
DefaultLegacyHooks: don't process the same event

Similar to the changes to the LegacyStatusBar, if an event has already
been processed by the IJ2 framework, we do not want to trigger its
processing again via the legacy hooks.
Add LegacyCompatiblecommands to IJ1 menus

The LegacyCompatibleCommand is now a marker interface to designate IJ2
commands that should be added to the ImageJ1 menu structure.

The DefaultLegacyService will now find these commands and, preserving
their menu structure, insert them into the ImageJ1 menus. Existing,
overlapping menu structure will be reused where avilable, and created if
it does not already exist.
TEMP: create test command