Don't create tile if rendering needs to be deferred

Rendering vector tiles with mixed geometry types does not work
as expected, because the tile is created without the geometries
that need another rendering pass because of missing icons. This
was discovered by @bartvde when working on the KML parser, where
mixed geometry types are common.

This change fixes the issue by breaking out from rendering
entirely when renderFeaturesByGeometryType returns a deferred
state. In addition, there was a related bug because icons are
added to the cache regardless of its loaded state. This is also
fixed now.
Add infrastructure for glsl-unit
Use glsl-unit in WebGL map renderer
Use glsl-unit in WebGL tile layer renderer
Configure Travis to build shaders with glsl-unit
Move shader support code into ol.webgl
Tidy up ol.webgl namespace
Make time-sensitive test less sensitive
Fix use of this in ol.source.BingMaps
Merge pull request #430 from twpayne/fix-bing-maps-scope

Fix use of this in ol.source.BingMaps
Rename AnchoredElement to Overlay
Add comment about automatically generated files
Merge pull request #420 from ahocevar/icon-defer

Don't create tile if rendering needs to be deferred. r=@bartvde
Rename getTileZXY to getTile
Rename TileJSONOptions.uri to TileJSONOptions.url
Remove ol.TileRange.clone
Merge pull request #431 from twpayne/rename-anchoredelement-to-overlay

Rename AnchoredElement to Overlay
Merge pull request #425 from twpayne/glsl-unit

Use glsl-unit for WebGL shaders
Rename useTileZXY to useTile
Merge pull request #432 from fredj/uri-url

Rename TileJSONOptions.uri to TileJSONOptions.url