topcat: add working, but scrappy, CDS X-Match upload window

This allows users to perform a positional sky match between a local
table and a VizieR/Simbad table by use of the CDS X-Match service.
The remote table selection is very primitive and the window is very
ugly, but it's basically functional and efficient.
task: add typed value list getter method for ChoiceParameter

New method getOptionValueList returns a Collection<T>.
More obvious name getOptionList is no good, it's already used
by a subclass.
topcat: refactor scheduling of jobs by DalMultiWindow

Pull the EDT scheduling logic out of DalMultiWindow into a reusable
class Scheduler.
ttools: generalise upload match FindMode

Add some more options for the upload find mode, corresponding to things
that you can do to a table in-place (possible if the output rows match
1:1 with the input rows).

This involves restructuring the way that the FindModes are done;
separate the service-directed modes from the user-directed ones.
The user-directed ones are specific to the UI, so the ttools one
will differ from the topcat one.
topcat: refactor xmatch subset addition GUI

Move addSubset method from DalMultiPanel to TopcatUtils for reusability.
topcat: add ADD_SUBSET UploadFindMode

This mode adds a match success flag to the current table in-place.
ttools: add getIndex method to ConeQueryRowSequence interface

A ConeQueryRowSequence now has a record of the row index relative
to the underlying table (whatever that is).  This enables the use
of filter CQRSs that can modify the sequence of rows (for instance
skipping some) without losing the information that allows you to
stitch the results back together in the right order.
ttools: simplify upload match using CQRS.getIndex

Now that ConeQueryRowSequence carries the row indices of the underlying
tables around with it, you don't need to keep track of what rows are
where in the calling code so much, so we can simplify the way it's done
a bit.
ttools: upload match now only uploads possible matches

Any matches which do not have definite RA/Dec positions are now skipped,
rather than being uselessly uploaded to the matcher service.
topcat: improve cds xmatch window cosmetics
task: allow null value for IntegerParameter

The return value of intValue is now Integer not int, but that's
transparent at the source code level because of java 1.5 auto-unboxing.
ttools: improve MOC discQuery efficiency

Use lower-level Healpix calls not MOC library calls to determine
intersection of a MOC with a given cone.  Big performance improvement.

Approx times per call:
  Previous implementation, MOC lib v4:   1.   ms
  Previous implementation, MOC lib v4.1: 0.1  ms
  Current implementation,  MOC lib v4:   0.02 ms
ttools: use MOCs to pre-filter rows for upload xmatch

MOCs are retrieved from the CDS footprint service, and used in the
stilts cdsskymatch command to filter out any rows which are outside
the footprint of the service.

Minor change to a couple of bits of MOC reading implementation and
parameter usage of SkyConeMatch2 (nside is now null by default).
This is more logical, I think I did it different before because
I couldn't have null IntegerParameters.
topcat: cds upload match window now provides known aliases

Add a new class Downloader that manages downloading an object from
an external source (or in general performing fallible acquisition of
a resource which may take longer than is acceptable on the
Event Dispatch Thread).  Use this to retrieve the current list of
known VizieR table aliases from CDS, and display those in a selector
for the user to choose from.  The user can also type in full VizieR
table names (like II/246/out); although CDS does offer a download of
the full list of these, there are too many of them to offer
multiple choice.
topcat: add a status monitor for vizier alias list download

The Downloader now has createMonitorComponent method that displays
a discreet status icon indicating how the download is going.
ttools: add JSON library

This is JSON-java from https://github.com/douglascrockford/JSON-java.git,
commit a9a0762, Mon May 5 15:09:32 2014.

It is currently required for retrieving VizieR table metadata from
the CDS Xmatch service, served in JSON format.
topcat: acquire metadata for VizieR table in CDS xmatch window

Retrieve the metadata from the Xmatch service and display it when
the CDS table is selected.  Improve window cosmetics also.
topcat: add tooltip to Downloader monitor component
topcat: use MOCs in CDS upload xmatch window
topcat: add JoinFixAct selector in upload xmatch window

You can now select whether/how you would like columns from the
remote table to be renamed to avoid duplicate column names in
an upload Xmatch.  This functionality should really be added as
well to the various other kinds of matches (it's available passim
in STILTS but not TOPCAT).