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?

--depends-on openmicroscopy/bioformats#1435
Probably a good idea to add to the list, but needn't block this PR.