Let 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.

Allow styles to filter on the geometry type, using syntax like
```
#localdata[GEOMETRY = Point] {
  ...
}
```
This lets us restrict markers to point geometries when we have mixed-geometry datasets.

/cc @hampelm 
We need more than just key+value for the "new" way of specifying a filter. Rather than build more support for the old-style of coloration/filtering (which just specified response key and value), I think it's better to move the rest of the dashboard to client-defined styles. Then we can specify whatever query, selected fields, and stylesheet.