ttools: fix bug in explicit ranging for sphere plot
ttools: move some line-wrapping code

Move some line wrapping code from OutputModeParameter to Formatter so it
can be re-used elsewhere.
ttools: improve custom description for table input params

Some table input parameters (AbstractTableInputParameter and subclases)
need custom wording in their parameter descriptions and prompts to
explain the purpose of the tables in question.  This was previously
handled by some extremely nasty string manipulation that relied on
knowledge of hard-coded description text.  Replace it by some more
reasonable configuration methods.
ttools: refactor Plot2Task

Split Plot2Task up into an abstract superclass (AbstractPlot2Task)
and a PlotType-agnostic concrete subclass (GenericPlot2Task).
GenericPlot2Task should now behave just the same as Plot2Task used to.

But now I can instantiate AbstractPlot2Task separately for particular
PlotTypes, to give PlotType-specific plotting classes that provide
better self-documentation and are easier to use (parameter lists
customised to particular plot types).
ttools: add PlotterParameter

The layerN parameter is now provided by a custom parameter
type PlotterParameter.  The values of this parameter no longer
map 1:1 to Plotter instances, since it previously had far too many
possible values
(mark-auto, mark-flat, mark-aux, ... link-auto, link-flat, link-aux, ....),
which made it unwieldy to (auto-)document.

Now, for the special case of ShapeModePlotters, this parameter
just specifies the ShapeForm, and an auxiliary (shading) parameter
is used to specify ShapeMode.  For other plotter types, this parameter
specifies the Plotter in full.
ttools: make layer suffixes optional in plot2 task parameters

Allow data and style parameters to be specified either with or without
the layer suffix.  This generally means much less typing for multi-layer
plots where the layers are related (e.g. from the same table).
ttools: fix plot2task to handle per-layer DataGeoms
ttools: add typed plot2 task

TypedPlot2Task allows much better self-documentation.
Added a couple of example subclasses (Plane and Sky).
Other type-specific ones left to do, but most will be trivial.
ttools: add PlotUtil.subtractInsets utility method
ttools: allow data insets to be set on a PlotDisplay

You can now fix the extent of the region between the data part of the
plot and the component boundary for a PlotDisplay.
Previously it only worked for exported icons.
ttools: add data insets capability to example plot classes
ttools: replace plot2task boost parameter with compositor

Replace the (floating point) alpha boost parameter in AbstractPlot2Task
with a more general parameter with type Compositor.  This usually
works the same way, but allows you to use custom Compositor objects
pluggably at runtime if required.

Needed to make the BoostCompositor class public rather than just
having a static factory method Compositor.createBoostCompositor.
This allows other components (the stilts parameter system) to
identify BoostCompositors as such and determine their boost values.
ttools: first tranche of Plot2Task parameter documentation

Add required documentation (prompt and description) for the parameters
explicitly defined in the AbstractPlot2Task class.
This does not cover those parameters constructed automitically
from Coords or ConfigKeys.
ttools: add entity declaration options to Formatter

Provide the option to declare some internal entities to the Formatter
class for it to use while parsing XML it's going to format.
I ended up not using this, but it might possibly come in useful at
a later date, so leave it in.
ttools: parameter documentation now includes value class

The auto-generated parameter documentation (in SUN/256 and on the
console using the help parameter) now include information about
what class the parameter represents.  This is useful/necessary
for programmatic use of the parameter system, since you may want
to submit typed values to a MapEnvironment as an alternative to
string values, so you need to know what type is permitted.

However, this is a bit problematic, since for the first time the
TTOOLS API is being exposed in the STILTS UI.  Various issues
with that, including the fact that the javadocs are not currently
shipped as part of the STILTS package, which they really should be
if some of the classes are relevant.  In the long term, I'd like
to split the plot2 classes out of STILTS altogether and expose
only that API, but in the meantime, reference the javadocs
published from my web page as a stopgap.

I'm also not quite sure about the aesthetic presentation of the
parameter types in the Usage sections of the auto-generated task
documentation.  Maybe revisit the details at some point.
ttools: add coordinate parameter metadata in Plot2Task

The coordinate parameters from AbstractPlot2Task now have
user-visible prompt and description strings based on the
metadata of the corresponding Coord objects.
ttools: partially address issues with swing plot2task animation

Swing animation is not parallelised.  This meant that for slow plots,
most frames are never seen with swing animations from Plot2Tasks.
Fix this by replacing SwingUtilities.invokeLater with invokeAndWait.
However the real fix would be to parallelise the plotting.
It wouldn't be too hard, but I'm not doing it now.
Add comments to the source code to describe what would have to be
done.
ttools: add more items to ConfigMeta

More metadata items (shortDescription, xmlDescription and stringUsage)
can now be added to ConfigMeta objects to describe a ConfigKey.
ttools: use all available metadata in ConfigParameter

ConfigParameter now acquires enough metadata from the ConfigMeta object
of its ConfigKey to be a fully documented Parameter.
ConfigParameters can now be used as STILTS task parameters
for auto-generation of documentation, as long as the relevant
ConfigMeta objects are properly populated.
ttools: add metadata for plane-related config keys

Added full config key metadata for all the keys used in PlanePlotType.
Add new task PlanePlot2Task.