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.