SaveAsImage: remove hacky 5D logic

The next release of SCIFIO will allow N-dimensional saving, so this
logic will no longer be necessary. And in the short term, it is not
that vital to warn about this temporary limitation.
SaveAsImage: make initializer method protected

Public API invites external usage, but in this case, we do not want
anyone calling the initOutputFile method directly.
SaveAsImage: remove "IJ2" reference

The term "IJ2" is convenient shorthand when talking about the project,
but is not very future-proof for the long term.
Make ImageJ plugin types implement ImageJPlugin

The SciJava plugin class hierarchy was recently enriched with some
useful new layers: e.g., TypedPlugin, SingletonPlugin, WrapperPlugin.
After this change, some types of ImageJ plugins did not actually
implement the ImageJPlugin interface, but rather simply extended the
most appropriate SciJava plugin interface. It is best to do both, so
that *all* ImageJ plugin types descend from ImageJPlugin.
MinMaxMethod: organize imports
MinMaxMethod: clean up javadoc
CommandInfo: remove factory infrastructure

This infrastructure was put in place long ago to accommodate a specific
use case: 3D Viewer plugins, which were special extensions of Commands
with their own menu structure separate from vanilla ImageJ commands.

That use case can now be handled using the menuRoot attribute of the
@Plugin annotation; there is no more need to involve factories that
customize the wrapping of Commands to Module instances.

To reduce the complexity of the class hierarchy surrounding Commands and
Modules (which is really more than complicated enough already), we
remove this unused feature.

If the need should arise for it in the future, it can always be readded
at that time. But until then, we respect the "YAGNI" principle here.
Command: improve javadoc

The javadoc is now consistent with the language in other plugin types
throughout the codebase.
CommandInfo: flesh out javadoc
CommandModule: flesh out javadoc
CommandInfo: clean up style
Merge branch 'command-cleanup'

This branch simplifies the imagej.command class hierarchy by removing
the unnecessary CommandModuleFactory infrastructure.

It also cleans up and fleshes out javadoc in various places, to better
explain how Commands and Modules are related to one another.
Merge branch 'imagej-plugins'

This branch makes sure that all ImageJ plugin types descend from the
ImageJPlugin marker interface. They used to, but after fleshing out the
plugin class hierachy, some types inadvertently lost the tag.
HistogramBundles support multiple histograms

This change allows the HistogramPlot command to display two histograms (one
at regular scale and one at log scale).
CommandInfo: fix NPE in createModule method

This bug was introduced in 541005824c723dd05a6cb7e9842562ead0f952dd.

The meaning of the "info" variable changed (from CommandInfo to
PluginInfo) when the code was moved from DefaultCommandModuleFactory.
TestBinaryMaskOverlay: remove unneeded try/catch

In the same vein as 7c0ea1fda02d4e56793eabfaa5761a8965a0e903, it is
better for tests which are not supposed to throw exceptions to simply
declare those checked exceptions, such that if they *are* thrown, the
test is in error. Then we get the full stack trace instead of just the
message, too.
TestBinaryMaskOverlay: use empty context

We do not need a full-blown context with all available services just to
test the overlay serialization; better to use a minimal (in this case,
empty) one for that.
Main: flesh out javadoc of launch method
Document future enhancements
NewImage: do not allow 0 axis lengths

The minimum is really 1, not 0.