A field that works with any `Map` allowing different components for keys and values. Uses a `CollectionField` to produce a `Map` from a list of `Map.Entry`.