[not ready] Remote sources

Non-`mapbox://` `"sources"` > `"url"` should now take a `tilejson` endpoint.
If no `url` is specified, `"tiles"` can instead be specified as an array, as in the [tileJSON spec](https://github.com/mapbox/tilejson-spec/tree/master/2.1.0). Other tileJSON properties (minzoom, maxzoom, etc) can also be specified.

todo before merging: 
- [x] update native
- [x] update spec https://github.com/mapbox/mapbox-gl-style-spec/pull/143
- [x] follow-up: start v5/ rename minZoom->minzoom and maxZoom->maxzoom everywhere
- [x] update api docs https://github.com/mapbox/mapbox-gl-js/commit/153abd13afc36db22fe510c3bb2a8dfc5d14b846
- [ ] update gl to optionally use other tilejson-specified items (attribution, center, bounds, etc)