Only warn about duplicate script engines

Once we have a Python script engine based on real Python (started in
https://github.com/scijava/scripting-cpyton), we will want to avoid
erroring out when there are *two* implementations for the same name,
and instead let the implementation with the higher priority win.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a unit test for the script service

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ScriptModule: inject also the ScriptModule itself

For the ImageJ 1.x macro engine, we will want to access the script
module's info to find out what outputs are required so we can append
code to set it in a thread-local manner.

See also https://github.com/imagej/imagej-legacy/issues/10

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that ScriptEngines have access to the ScriptModule instance

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #65 from scijava/duplicate-script-engines

Only warn about duplicate script engines
Merge pull request #66 from scijava/ij1-macro

Prepare for a fancy ImageJ 1.x macro interpreter
ModuleRunner: use cancel(String) if cancelable

The Cancelable interface has a cancel(String) method that is different
from the cancel() method defined by the Module interface, which
apparently is intended for previews.

cancel(String) is what causes Cancelable modules to actually be
considered "canceled" by the isCanceled method.