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.
Safer to do:

```
if not hasattr(datamaps, '__iter__'):
```

Or at least ```not isinstance(datamaps, (list, set, tuple))```