Tool: fix out-of-date javadoc
JHotDrawService: clean up Eclipse warnings

We now avoid the use of raw types wherever possible, and localize
@SuppressWarnings annotations to the most local statements possible.
BezierPathFunctions: clean up style & add javadoc
ToolService: add common reporting methods

These originally lived in AbstractTool and AbstractJHotDrawAdapter but
it's cleaner to have them as a formal part of the ToolService instead.
Remove obsolete reporting methods

They have now moved to ToolService.
Split JHotDrawAdapter and Tool plugin types

The association between JHotDrawAdapters and JHotDraw-based tools was
not completely one-to-one, but previously JHotDrawAdapter was shoehorned
on top of Tool anyway, for convenience. However, some JHotDrawAdapters
(DefaultJHotDrawAdapter, GeneralPathJHotDrawAdapter) are not actually
tools at all; i.e., they have no associated toolbar icon or handling of
user gestures. We just hacked around it by making the tool invisible.

To better represent this situation, JHotDrawAdapter is now its own
plugin type, independent of Tool.

With this change, the class hierarchy has also been cleaned up a bit:
JHotDraw-based Tools are now directly in imagej.ui.swing.tools, while
JHotDrawAdapters still live in imagej.ui.swing.tools.overlay.
Migrate JHotDraw Figures to ij-ui-swing-tools

These figures go hand in hand with their associated Tool and
JHotDrawAdapter plugins, and belong in the same place. Nothing else
besides ij-ui-swing-tools makes use of these Figure implementations.

There is also no reason for the "Swing" prefix, since there will never
be an "AWT" etc. version of these classes (they are JHotDraw-specific).
StderrLogService: implement new dispose() method

In the scijava-common framework, Service now extends Disposable, so that
services (and their context) can properly clean up resources if needed.
Make UserInterfaces Disposable

Now you can clean up a UserInterface by calling its dispose() method.
Make DisplayViewers Disposable

Now you can clean up a DisplayViewer by calling its dispose() method.
Merge branch 'jhotdraw-adapters'

This branch decouples JHotDrawAdapter from Tool, making them
into two completely separate plugin types. For details, see
db538731f6222433416d8fa08cf5be35f3293923.
DefaultUIService: implement disposal

This disposes all constituent DisplayViewers and UserInterfaces.

Unfortunately, the logic is not completely correct at the moment,
but it is a start.
DefaultLegacyService: implement disposal

This shuts down legacy ImageJ, then clears the DefaultLegacyService
singleton for later reuse within the same JVM.
DefaultAnimationService: implement disposal

This stops all running animations when the service is disposed.
QuitProgram: quit much more gently

We now dispose the SciJava application context (and all services),
with the idea that soon we can avoid quitting the JVM by force.

Unfortunately, there are unresolved issues with the disposal of
DefaultUIService, for the moment we still call System.exit(0).
CommandModule: implement Contextual

Similar to how it implements Cancelable, this implementation is merely a
pass-through for the wrapped Command, in the case that the Command
itself also implements Contextual. If the Command is not Contextual then
the setContext method does nothing, and getContext returns null.
CommandModule: stop eating RuntimeExceptions

When run is called, if an exception is thrown, it should actually get
thrown. The error will be caught, logged and rethrown further up the
food chain: specifically, by ModuleRunner#call().

This eliminates the usage of the deprecated Log class.
Merge branch 'context-disposal'

This branch updates ImageJ to match the latest SciJava Common,
specifically the context and service disposal logic. Core ImageJ
services now implement the dispose method as appropriate.