Configurable lighting

* Moved lights from hard-coded shaders to JS classes that inject light code into shaders.
* Changed lights and camera-related relative positions (e.g. camera or light height) to be specified in pixels (easier to consistently reason about that meters).
* Extracted the "stops"-style interpolation used to calculate camera focal length so it can be used for other styling needs.
* Added a spotlight type for fun.
* TODO: this light structure works for single light sources, but won't scale well; once @patriciogonzalezvivo is done with his first cut of lighting on tangram-es, we will refactor here to match.