add symbol* properties/keys
merge text and icon buckets/styles

(we're not yet placing together!)
move sprite to a use future loading
better warning messages
fix enum tests
port https://github.com/mapbox/mapbox-gl-js/commit/954dc6591fb6bef812881daf686ab3164d259ea6
port https://github.com/mapbox/mapbox-gl-js/commit/5a9a1b14b94b18277c4495199dc19e0cb96619fc
update shaders and backport some collision changes
update symbol placement to be more like js
fix boolean operators
change max_angle_delta to max_angle
port mapbox/mapbox-gl-js#ffd529df107bfec446fa4b4454a583f296c38819
correctly calculate placement depth
make sure to check the promise
don't require the background layer to be named "background"
default to map alignment when placement type is line
explicitly named parameters
port js algorithm
use trinary operator rather than || since c++ semantics for || is different
code style fixes