Use objects for type maps and pass them to QueryExpressions (to be able to use default mapping from schema)

See discussion from #3118