Combine shape end points; add metro

Previously, we had a request handler for tracts and a separate for counties. The map would then make separate calls and generally half the speed of future requests.

This adds a unified handler that will pass along all requested geo types (defaulting to tract, county, & metro). The JS was refactored to take advantage of a single geojson tile layer (including selecting proper style and putting tracts behind counties behind metros). Logic about which zoom level to stop showing census tracts was moved into the backend.