Simplify event handling when the context is known
Simplify ImageJ context accesses, where possible
Use spelled out variable names

This is clearer, more consistent with other parts of the codebase, and
does not significantly increase lines of code.
DefaultModuleInfo: use accessor instead of field

This makes the behavior safer for subclassing, in case a subclass
overrides the getModuleClass() method.
ShadowsDemo: tweak style
ImageJ#inject: tolerate multiple injections

Attempting to inject the same context multiple times is not really a
problem; we just ignore subsequent attempts. IllegalStateException is
still thrown when attempting to inject two different contexts, though.
ModuleRunner: inject context into the module

Not all modules are contextual. But it is important for the context to get
set when the module *is* contextual, so that any declared EventHandler
methods are registered with the event service properly.

This change fixes the ShadowsDemo to behave properly again, after being
broken in commit f69f6fd081c1a82f110cb8b9f54e68bd98489be9.
Merge branch 'simpler-events'

This branch simplifies event subscription, by no longer requiring an
explicit call to EventService#subscribe(Object) in many cases. As long
as the object in question extends AbstractContextual, its @EventHandler
methods will be automatically subscribed when setContext is called, and
automatically unsubscribed when they are garbage collected (i.e., when
finalize() is called on the object).

This change results in a net loss of code, with less boilerplate code in
many places. It also makes a couple of other objects into Contextuals
(which they effectively were anyway, albeit without implementing the
interface).

One potential limitation of this approach is with services: a service
that has @EventHandler methods but does not declare a dependency on
EventService may be created before the EventService, and hence may fail
to have its methods registered. If this becomes a problem, we can add a
special case to the ServiceHelper that automatically adds an
EventService dependency to any service that has @EventHandler methods.