topcat: fix some documentation issues

Adjust the main montage screenshot slightly so that the plot toolbar icons
are the new ones not the old ones.  This montage still needs a major
overhaul since currently none of the plots shown use the new plotting
windows.

Also fix up the section on missing transparent/translucent shading modes -
these two were conflated in the docs, now there is one section for each.
topcat: repaint shading mode selector on mode change

The shading mode panel was not getting repainted properly when the
mode changed from Transparent to Translucent, though for most other
changes a revalidate caused a repaint as a side effect.  Now repaint
explicitly.
ttools: add "duff query" test to taplint

The TAP validator query tests now include a query with intentionally
illegal syntax, to check that the error document is returned in the
correct way.
vo: fix line-end bugs in UwsJob

The code for posting multi-part messages in UwsJob, and used by TapQuery
for doing TAP table uploads, was placing line ends incorrectly
(see Goldfarb's First Law of Text Processing).  In particular,
an uploaded VOTable lacked a CRLF before the terminating multipart boundary.
This was reported by Michael Tibbets at CFA, and was causing
incorrect error reports in taplint's UPL (upload) stage.
Fixed.

While I was there, I spotted another lurking bug related to multipart
line ends which would have caused errors if more than one stream
param header had ever been used (though I don't think it ever had) -
fixed that too.
ttools: avoid taplint E-MDQ-CTYP error report for BOOLEAN!=boolean

This behaviour may technically be an error since BOOLEAN TAPType doesn't
exist, but it's better reported elsewhere (if at all).
vo: add new TapQuery constructor

TapQuery now has a different constructors for upload and non-upload queries;
only the former can throw an IOException.  This simplifies invocation for
cases where upload is not required.
table: note SQL correspondences in JoinType documentation

1and2 = INNER, 1or2 = FULL OUTER, all1 = LEFT OUTER, all2 = RIGHT OUTER.
I've only just learned enough SQL to get this right.
util: fix incorrect package declaration in BeanTableModel
ttools: taplint tries not to truncate TAP_SCHEMA.columns table

taplint reads the columns from TAP_SCHEMA.columns to compare with
those declared from the tables metadata endpoint.  However for services
with large column counts, this was getting truncated, so it looked like
a discrepancy.  Avoid this (reasonably, but not totally reliably) by
setting MAXREC high enough.
ttools: taplint reports I[nfo] not F[ail] for missing ObsCore
vo: generalise registry access for use with multiple implementations

RegistryQuery is now an interface.  The previous implementation,
which works using the SOAP-based IVOA Registry Interface 1.0 standard,
is renamed as the concrete subclass Ri1RegistryQuery.
This opens the way for alternative RegistryQuery implementations,
so I can use the same framework for RegTAP registry queries.

Some of the other classes still need changes to work with different
implementations, which will be done in future revisions.

The RegistryQueryPanel and RegistryTableLoadDialog however
have been renamed as Ri1*, since I don't intend to update those
to use RegTAP - they would need a lot of changes, and if you want
to do free-form queries of a RegTAP registry you can use the TAP
load dialogue rather than needing a specific one like these.
vo: generalise registry selection for multiple implementations

The user registry selector component now uses a pluggable model which
provides a hook for selecting different registry service types (RegTAP).
vo: move query generation logic to RegistryProtocol class

The ADQL query is now constructed by a RegistryProtocol instance rather
than doing it in the KeywordServiceQueryFactory.  That localisation
makes it easy to provide a new RegTAP implementation alongside the
existing RI1.0 one.
vo: add the capability to stream DAL VOTable results

DalResultStreamer is a generic class to stream SAX events to a TableSink,
taking account of DAL rules and conventions.  TapQuery presents the
capability to do it for TAP results.
vo: add RegTAP implementation for registry queries

Added a new implementation of RegistryProtocol, RegTapRegistryProtocol.
This is now used by default for registry queries, though you can
select the older RI1.0 mode in the Registry menu.
ttools: taplint cosmetic tweaks
ttools: rework taplint XSD validation

Some of the taplint stages (CPV, AVV, TMV) validate TAP service documents
against standard IVOA XML Schemas.

The way this was done previously was to prepare an XSD validator that
knew about the XSD schema expected for the given document.  Unfortunately,
it seems to be impossible to combine that approach with allowing the
document to specify additional schemas (for additional namespaces in
the same document).  That capability was required for the GACS TAP
service, that is using a custom size attribute in a foreign namespace
(permitted by the schema).  To accommodate that, I had to rework the
validation framework.  It now gets schemas as declared by the client
documents, rather than hard-wiring them into the validator, but uses
a custom schema resource resolver to suppy official versions of the
expected schemas, and reports on whether the expected
schemas/namespaces/element names were used.

It seems remarkably painful to get all this working, and it's possible
there are still some mistakes.

However, it now works better than before in some respects, in particular
the CPV stage (for which the schema was absent from its expected home
on the IVOA website) works rather than not working, and so is now
turned on (rather than disabled) by default.
util: change gitversion to report committer not author date
vo: fix registry list update bug

Make sure that the searchable registry list update action does not add
the same registry multiple times to the list.
vo: modify registry protocol selection UI

Now the registry protocol selection (RegTAP or RI1.0) is done using
a combobox adjacent to the registry URL selection, rather than hidden
away in a menu.  This may still not be the final UI for registry
selection, but it makes it more obvious what's going on.