5.1DEV__16: Ordered Map implementation

    a.k.a. `NamedValueList`

Along with the introduction of the MapPair class in
Bio-Formats, the new omero.api.NamedValue and NamedValueList
definitions provide for ordered maps, i.e. lists of
string-string pairs. Duplicates are permitted, though
null values are not.

This removes the need to use the special HQL syntax for
index/value look ups and instead standard join logic can
(must) be used.

A new marker interface `ome.model.internal.Primitive` was
introduced so that the `ome.model.units.Unit` implementations
as well as `ome.model.internal.NamedValue` can be handled in
the same way.

Currently open questions include:
 * should `NamedValue`'s value' be generic or simply a string?
 * should it be nullable? (if not, then it need not be an RType)
 * is the `NamedValue` naming better than the `MapPair` naming?
Fix flake8 error
Bump OMERO5.0__0 patch number (again)
Fix MapAnnotationTest.java

Note: null values are now disallowed.
Fix versionInfo test in test_repository.py
Merge branch 'origin/develop' into ordered-maps

Conflicts:
	components/tools/OmeroCpp/test/integration/mapannotation.cpp
Move NamedValue to omero.model
Use plain string as NamedValue value
Add asMap methods for NamedValue fields

As suggested, this adds a method which produces a copy
of the `NamedValueList`. Modifications to the map are
not propagated back to the original list.
Fix flake8 error
Fix upgrade script when maps are present

The creation of the NOT NULL index column
failed the upgrade script for databases
with any maps present. By using the window
function `row_number` we can set the ordered
list according to the alphanumerical sorting
of the key.
Fix ordering of renames/updates
Make sql Makefile more flexible

In order to use non-standard PostgreSQL
connections (in this case for accessing
PG running in Docker) the host and user
have to be configurable.
Fix NamedValue import
Copy 5.1d15 upgrade to 5.0
Removed usage of deprecated method
Fix integration tests
Replaced all getXyAsZ() with getXy(UnitsZ) in the Pojos
Make use of the Pojos getXy(UnitsZ) methods
Load NamedValue_ice from min.py