Update DataMaps and ObjectMaps to be dict aware.  Allow ApplyDataMap to accept a dict.

allow applyDataMaps to be set via a router or facade call.

Additionally allow DataMaps and ObjectMaps to be converted to and from a dict.
I'm slightly wary of this. Is it clear iter(self) is returning a copy and not the thing itself? A frequent patter is just to return self and have next() defined.