WIP: imagej.core.commands: use @Parameter injection

--DELETE THE FOLLOWING TEXT AND MOVE TO FINAL MERGE COMMIT--
This is now possible thanks to scijava-common 1.9.0, and is cleaner
than grabbing services haphazardly using Context#getService(Class).

It also exposes bugs earlier by ensuring that required services really
are present at the time of context injection, rather than waiting until
the services are actually needed then failing with NullPointerException.
WIP: imagej.data: use @Parameter injection
imagej.ui: use @Parameter injection
OptionsLineWidth: remove debugging code
OptionsOverlay: avoid circ dep on OverlayService

At some point we probably want to restructure how the OptionsService
works in general, but this solution works for now.
ToolService: initialize lazily

This improves the service's initialization time by deferring
construction of data structures until they are actually needed.

It also avoids potential circular dependencies between the ToolService
and its Tools, since it is natural for a Tool to want to have a
reference to its associated ToolService.
UIService: initialize lazily

This improves the service's initialization time by deferring
construction of data structures until they are actually needed.

It also avoids potential circular dependencies between the UIService and
its UserInterfaces, since it is natural for a UserInterface to want to
have a reference to its associated UIService.