Register singletons with the object service

This is really handy if you want to have an @Parameter typed with the
relevant interface, since the singleton instances will be known to the
ObjectService, so e.g. ImageJ's ObjectWidget can provide an appropriate
dropdown file chooser.
ThreadService: only shutdown executor if it exists

The previous behavior was rather silly: if the executor did not exist
yet, it was created on demand, only to be shutdown. What a waste.
SortablePlugin: use title as string representation

The title is the most human-friendly string available from the
PluginInfo, so it makes sense to provide a default toString
implementation that uses it.

This change is especially useful now that singleton plugins are
automatically added to the ObjectService: you can get the list of
singletons back for a given plugin interface, and then display them as
human-friendly strings thanks to this new toString() implementation.
Merge branch 'singleton-objects'

This branch adds singleton plugin implementations to the object service
automatically. The advantage is that we can now use these plugin
interfaces as @Parameters directly, without needing to jump through
hoops to convert between the singletons and string representations
thereof.

For examples, see ImageJ2's ImageCalculator (which uses CalculatorOp)
and Threshold (which uses AutoThresholdMethod).