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 am confused about what this is doing. Do you want to return data or results? If you want to return data, then of course this is simpler. If you want to return results, can't you just do:
```
return [map.to_dict() for map in datamaps]
```