Rename remaining imagej.ext.* classes

All references to imagej.ext have now been purged.
Rename RunnablePlugin to Command

This has ripples throughout the codebase, but is hopefully a much better
name, more concise and intuitive, describing what this type of plugin is
for: executing a command.

The term "command" is familiar to users of ImageJ1, the only difference
being that in ImageJ1, a "plugin" could implement multiple "commands",
but in ImageJ2 you would create a separate class for each desired
command anyway, so the distinction has been dropped.
Rename PluginModuleInfo to CommandInfo

This goes hand in hand with the rename of RunnablePlugin to Command.
PluginInfo: use term "annotation" for Plugin ref

The annotation field is now private too, to better encapsulate it for
the purposes of subclassing.
Rename DynamicPlugin to DynamicCommand

This also renames DynamicPluginInfo to DynamicCommandInfo.
Rename PluginModule (and friends) to CommandModule
Rename ContextPlugin to ContextCommand
Move Command classes to imagej.command package

This is in line with the other package hierarchies for other types of
plugins (e.g., imagej.display for Displays).
ImageJUpdater: fix minor warnings & issues
Fix module & plugin pre- & postprocessor docs
Split out CommandService from PluginService

This work necessitated many (relatively small) changes to the
plugin framework, including:
  * The plugin service now issues events when plugins are added/removed.
    The command services uses these events to track when the plugin
    index changes, so that it can keep its CommandInfo objects in sync.
  * Some discrepancies in certain ModuleServie#run method signatures
    have been fixed.
  * DynamicCommands are now contextual, and can be used similarly to
    ContextCommands, invoking them via the Java API.
  * The plugin service now uses "PluginInfo<P>" rather than
    "PluginInfo<? extends P>" as the return type for a few methods. This
    signature is simpler and more convenient in some situations.
    Downstream portions of the codebase have been updated accordingly.
OptionsOverlay: clean up style
Eliminate redundant options plugin constructors

Now that DynamicCommand is contextual, it makes the most sense to load
values from persistent storage when the context is set for each
particular options plugin. This ensures that field initializations have
already run (since the constructor is already finished by then).

It also fixes an NPE caused by the recent addition of CommandService.
Rename IPlugin to ImageJPlugin

This eliminates the only use of the "I" prefix for interfaces, in favor
of a name that accurately represents what the interface is for: a plugin
for the ImageJ system.
Rename [XYZ]ToolConfigPlugin to [XYZ]ToolConfig

In the future, ToolConfig may officially be a subtype of Command,
especially to solve some related persistence issues.

But for now, we'll just use a snappier name.
Rename PreviewPlugin to Previewable

As a very general interface, it was also moved to the toplevel package
(along side other similar interfaces such as Cancelable and Contextual).
Rename AbstractAssignPlugin to simpler MathCommand

The new name accurately and simply conveys the purpose of the class. Of
course, it does not provide utter detail (e.g., from the name, you
cannot tell that it implements Previewable), but a cursory inspection of
the class hierarchy will show that it does. And since there is no class
of non-previewable math commands with which it would be contrasted, that
detail is a less crucial one.
NewImage: add missing getDataset() API method
Rename InvokePluginTest to InvokeCommandTest

This change also beefs it up to include an example of invoking a command
via its Java API directly, rather than via the command service.
Rename InvalidPlugin to InvalidCommand

This change also improves the javadoc to explain why the command is
invalid.