DSL Map Type

In order to support the upcoming `MapAnnotation` type, the DSL layer needs to learn how to create map fields. This PR is being opened at the moment for a review of the possible API. @qidane, @jburel, @will-moore, @mtbc et al. see the included integration tests.

This would be the appropriate time to discuss issues like units, value-types other than `string`, etc.

--depends-on openmicroscopy/bioformats#1002