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 think this is mostly unnecessary conditions. You don't need to make copies of anything. Perhaps simply:
```
results = []
if not isinstance(data, (tuple, set, list)):
    data = [data]
for item in data:
    datamap = RelationshipMap() if 'objmaps' in item else ObjectMap()
    datamap.from_dict(item)
    results.append(datamap)
return results
```