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.

----

--exclude
(Excluding by default since it will require a new DB. The sample field `ExperimenterGroup.config` will likely not remain in its current form.)