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 
Well, we had been playing somewhat fast and loose with nodetiles, and we were pointing to specific commits anyway, so those changes are in LocalData/nodetiles-core#master. Since ours is a fork, I think the SHA hash is the most explicit way of stating what we're actually pointing to. And if we need to fix a bug in nodetiles, an updated commit reference over here will indicate to Heroku that it's cached nodetiles package is no longer valid.