JavaScriptTest: fix testBasic test on some JVMs

It seems that some versions of Java's JavaScript engine return an
Integer here, and others return a Double. So to make the test pass in
both situations, we relax the cast to Number and compare double values.
Use ScriptLanguage instead of ScriptEngineFactory
ModuleService: add more run method signatures

This change is in preparation for the migration of some
non-command-specific run methods out of CommandService.

It also deprecates some previous signatures since they would become
ambiguous with respect to whether pre- and postprocessing should occur.
CommandService: improve the run method signatures

The non-command-specific signatures have been deprecated, having
migrated to the ModuleService. Every run signature also now takes a
"boolean process" flag for specifying whether pre- and postprocessing
should be done; previously, the CommandService *always* did pre- and
postprocessing.
Remove obsolete ScriptInputs class

All of its functionality and more has been refactored
into the ScriptModule and ScriptInfo classes!
LegacyExtensions: fix javadoc
ScriptService: remove unnecessary final keywords
ScriptService: update run method API

This change makes it consistent with the new ModuleService and
CommandService run APIs.
Add ZoomService with zooming convenience methods
Lean on ZoomService for zooming commands

This makes the commands simpler, but more importantly makes the behavior
of each zoom command more consistent, since the zoom service always
queues each zoom operation on the EDT. Previously, some zoom commands
(ZoomIn, ZoomOut) used the EDT and others (Zoom100Percent,
ZoomOriginalScale, ZoomSet, ZoomToSelection) did not.
ZoomHandler: lean on the ZoomService to zoom in

This is much better than calling a command from ij-commands
(which may or not be present on the classpath) via reflection.
KonamiHandler: fix easter egg FQCN
LUTSelectorPlugin: add FIXME reminder

This code needs to be refactored in some way...
SplitChannelsContext: add FIXME reminder

Would be better to refactor how this works...
Stop using deprecated CommandService#run methods

Many of these changes (the ones labeled FIXME) will need to be tweaked
again, after the deprecated run API has been removed from ModuleService
and CommandService. The reason is that as things stand, there is an
ambiguity between the methods with signature (X, boolean, Object...) and
the deprecated ones with corresponding (X, Object...) with no boolean.
Unfortunately, due to autoboxing, the Java compiler has no way of
knowing if a passed boolean was intended to fill the actual boolean
parameter, or instead become part of the Object varargs array.

From my naive perspective, I think it should prefer to fill the boolean
parameter, the same as would happen with two non-varargs method
signatures that take a boolean and an Object respectively. But it
doesn't, and the problem will go away once the deprecated API is
removed, so we can adjust the method calls again after that point.
ScriptInfo: generalize input/output adding methods

This change also fixes a bug where the return value
output item was not actually marked as ItemIO.OUTPUT.
ScriptInfo: change clearInputs to clearParameters

The method now clears out both inputs and outputs.
ScriptInfo: rename parseInputs to parseParameters

This change is in preparation for outputs to parsed the same way.
ScriptInfo: update parseParameters javadoc

The new javadoc describes the new intended syntax options.
ScriptInfo#parseType: load classes with ClassUtils