RestructureUtils: improve createNewImgPlus method

This removes uses of the deprecated calibration approach in favor of
cloning the input CalibratedAxis objects properly.

This change also introduces a proper generically typed method for
creating a new ImgPlus from an input ImgPlus template. It retains the
Dataset signature but leans on the new method to do its work.
EditAxes: remove superfluous error message

A null dataset cannot come in via the command framework because by
default, each @Parameter is required=true, so the preprocessing chain
will barf with "A Dataset is required but none exists" or some such
before run() is actually called.

In the case of the command being called via the Java API, it is possible
that run() could be called without setDataset having been called first.
In that case, the dataset could be null. But you will see the problem
very quickly in any case because getAxes() will throw
NullPointerException right away trying to interrogate the dataset.

So I think the log message is not necessary.
EditAxes: rewrite command for new axis metadata

This new version dynamically provides the user with the ability to
specify variable values for any variable axis, linear or not.
ShowInfo: improve displayRangesString method

It had a TODO to avoid a cast, which we can do by using the
ImageDisplayService. The method also uses a StringBuilder now
to build up the result string.
ShowInfo: simplify infoString method

The previous implementation was both repetitive and convoluted.
The new implementation centralizes the null test into a helper
method, and eliminates usage of an intermediate ArrayList.