Initial working Java MapField
Nearly working c++ map type
Work-around c++ std::map copy semantics

For the moment, getConfig and setConfig are a bit
surprising since the std::map is being passed by
value rather than reference.
Passing Python test
Merge remote-tracking branch 'origin/develop' into dsl-map-type

Conflicts:
	etc/omero.properties
OMERO5.1DEV_3: Add MapAnnotation type

This adds an Annotation subclass which has a single
`mapValue` of `<String, String>` type. This may already
point to an issue in the design if we want to have
`<String, Object>` support.
Cleanup test imports
fill OMSC stubs for new methods, to appease travis
Make value of maps NON-NULL

Since Ice converts a null string to an empty
string, this change as it stands will store
empty strings in the DB. An RType will be
required to prevent that.
fix javadoc param typo
adjust XML mapping files
introduce String to RString maps into model
create mapper between String and RString map values
fill in new OMSC methods
adjust and add to tests
Merge 'mark/dsl-map-type-joshmoore' into dsl-map-type
Fix flake8 whitespace in test
Update test_mapannotation.py for rstring

@mtbc's work moved the config (and in fact all map columns)
to `Map<String, RString>`. This defines the logic that is
expected for regular entries, empty strings, and Nones (nulls).
rename GenericSource to GenericExcitationSource
Use mapping code that makes null-handling more obvious.