Let the client define query, selection, and styles

Use mongodb to cache layer definitions and optionally as a tile cache. Include all properties in the datasource output for UTF grids, so the Carto filters can act on them. Unneeded properties can be left out by specifying a select mapping.

/cc @hampelm