Merge branch 'master' into script-parameters

Conflicts:
	plugins/scripting/beanshell/src/main/java/imagej/plugins/scripting/beanshell/BeanshellScriptEngine.java
	plugins/scripting/java/src/test/java/imagej/plugins/scripting/java/JavaEngineTest.java
ScriptService: update eval methods & rename to run

The new run methods now use ScriptInfo objects, and are patterned
after the existing run methods of ModuleService and CommandService.

Similarly, they return a Future<ScriptModule> rather than the script's
return value itself. (We can guarantee that the resultant Module will
always be a ScriptModule, even if the casting is a little ugly.)
DefaultScriptService: remove obsolete code

The script input parsing is now part of ScriptInfo.
ScriptModule: do not set the context in the ctor

The reason is that the ModuleService#createModule method wants to do it.
Since not all ModuleInfo objects are contextual, the module service
assumes that calling info.createModule() will result in a freshly minted
context-free module. So let's not violate that assumption.
ScriptModule: support scripts from Reader sources
ScriptService: add method to run a script string

This method is merely for convenience.
Use handy ScriptService#run(String, String) method

For the unit tests, this method is a bit more
succinct than the one which takes a Reader.
Remove automatic SciJava context injection

This injection was a special case to provide scripts with access to the
SciJava context. But they can now easily have access to the SciJava
context simply by specifying an input parameter; e.g.:

    // @Context ijc

And this way, they can name the context variable whatever they want,
instead of it always being hardcoded to "IJ" which caused a name clash
with ImageJ1's ij.IJ class.
ScriptModule: initialize ScriptEngine before eval
BeanshellTest: wait for script execution to finish

Otherwise, in this particular case, there is a race condition where
the execution may not be finished before the JVM starts to shut down
(somehow...?). When that happens, the SaveInputsPreprocessor fails
because it invokes the Java Preferences API, which barfs.
BeanshellTest: add testParameters test

This is very similar to the one in JavaScriptTest, but for Beanshell.
Restore the ServicePreprocessor

It is still necessary in cases where service inputs are
programmatically generated, such as with ScriptModules.
ServicePreprocessor: move to imagej.module.process

This brings it in line with the rest of the module preprocessors.
The only reason it was done as a separate commit was to make git's
rename detection work properly.
ServicePreprocessor: fix javadoc
JavaScriptTest: fix failing test

The return value comes back as an Integer, not a Double. But rather than
simply change the assumed type, we instead do a string comparison to be
consistent with the testBasic tests of other scripting languages.
Use ScriptLanguage instead of ScriptEngineFactory
WIP