[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: 
- [ ] update native
- [ ] update spec
- [ ] update api docs
- [ ] update gl to optionally use other tilejson-specified items (attribution, center, bounds, etc)