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.