Handle maps in the data model

The result traverser treated Maps as pojos and therefore did not expose
the keys and values in the map to selectors. Maps are now treated
separately and selectors can be applied to their fields.