Support multiple script directories

This changes the ScriptService#getScriptsDirectory() method to
ScriptService#getScriptDirectories(). It also adds support for an
"ij.scripts.path" system property for appending additional search paths
where ImageJ should recursively scan for scripts. By default, the
folders "scripts" and "plugins/Scripts" (for backwards compatibility)
are scanned.
ScriptInfo: remove unused import
ScriptFinder: improve script discovery

We remove the "special Scripts subdirectory" logic in favor of
consistent behavior across all script candidate directories.

Scripts in the toplevel directory are now ignored, rather than being
placed into the Plugins menu directly. The main reason for this is
backwards compatibility: we want to remain compatible with Fiji's
existing "scripts" directory which currently contains .m files which
should *not* be discovered and placed into the main menu structure, but
rather exist for use with Miji.
DefaultScriptService: fix lazy init race condition

For performance, we use an unsynchronized null check against each data
structure in order to determine whether to enter the synchronized
initialization method for that data structure. Once inside, the null
check is repeated in case the data structure was initialized in the
meantime by a different thread.

The previous logic was flawed though, because after confirming that the
data structure was still null, it immediately _initialized that data
structure's object reference_ before completely initializing it. The
correct behavior is to first fully initialize the data structure in a
local variable, and only at the very end assign the correct pointer to
the data structure's object reference. Otherwise, a race condition
results when two threads call the data structure's getter method
near-simultaneously: if a first thread begins initializing, then a
second thread queries the getter and sees that the object reference is
non-null, that reference is immediately returned even though the first
thread is still not done initializing the structure itself.
DefaultToolService: tweak style
DefaultToolService: make lazy init thread-safe
DefaultAutoscaleService: tweak style
DefaultAutoscaleService: make lazy init thread-safe
DefaultCalculatorService: make lazy init thread-safe
DefaultThresholdService: clean up style
DefaultThresholdService: use clearer variable name
DefaultThresholdService: make lazy init thread-safe