Add support for using other keys for "show" functionality

This commit adds support for using other keys for "show" functionality
by extending the "path" and "show" query string to encompass not only
identifier matching but also key-value matching.  The parsing of the
query string variables is now done by regex.  An example URL utilising
this functionality might look something like:

    * /webclient/?show=project.name-foo
    * /webclient/?show=tag.textValue-bar

Functionality of this form is extremely useful when creating and sharing
URLs from external applications where OMERO unique identifiers are not
known or where specific tags are to have URLs created for them.

Tests have been added to cover the regex semantics and the new
functionality.  As a result of the new regular expression based query
string variable parsing some of the internal strings are now potentially
of the equals based form.
Fix tagset test name
Allow using any string type as obj_type to getObject()

This is particularly useful if you are using unicode strings throughout
your codebase.  Accompanying tests have been added.
Down stream OMERO.web code expects the "-" form and only identifiers

As the down stream code only expects these forms we must adhere to that
both when setting up the initial "path" strings and when presenting
those values to consuming code.
Fix redirects on incorrect menu
Special handling for Well name key in "path" query string

This commit adds special handling for the Well name key.  If a Well name
key is present (the object itself has no such field) it is assumed to be
of the form 'A1' or '1A' (based on row and column naming convention).
Lookups are then performed based on any "path" query string contents
applying to Plate and then the existing semantics applied based on Well
identifier.
Update documentation to cover IncorrectMenuError
Expand the regex so it can be used to match multiples
Select Wells based on show infrastructure logic
Remove debugging print
Also include well-id in initially_select list
Use information from the jsTree instance to populate showWell

With certain changes in the show infrastructure it is now possible that
the (a) "show" query string variable cannot be shoved off to the
delegate template without context and (b) that it will not have been
fully resolved by the Python stack.

We are guaranteed that the initial settings of the jsTree instance have
a fully resolved, and validated, set of instances.  This commit makes
use of them.
Fix typo
Ensure that less garbage ends up exposed on load failure
Strip needless white space
Make Well lookups work in a much larger set of cases
Add an extra Well to fixtures for testing other conditions
Expand test to cover the Well in a Plate without WellSamples case

Currently we only resolve the Plate in cases where the Well is in a
Plate but has no WellSample associated.  It should be possible to
perform this lookup by examining the PlateAcquisition's linked to
the Plate and selecting it if there is only one linked.
Remove unneeded Well retrieval
Try harder to find the PlateAcquisition