Moving squaredDistanceToSegment to the coordinate package
Let closestOnSegment return nothing more than a coordinate

Since we do not use the 'along' property anywhere, and the
resulting array returned by closestOnSegment could cause trouble
when working with 3d coodinates, now only the closest point is
returned, and the squared distance to the segment is calculated
by squaredDistanceToSegment instead.
Function to buffer an extent
When expiring tiles, consider max symbol size

When an extent is invalidated, we have to expire tiles outside of that extent to account for symbolizer size.
Add tests
Merge pull request #1225 from ahocevar/closest-on-segment

squaredDistanceToSegment and footOfPerpendicularToSegment
Merge pull request #1226 from tschaub/dirty-buffer

Buffer dirty extent when rendering,
The code generated from objectliterals.jsdoc requires name on same line

Without this change, the `interactions` property is renamed on map options (see #1210).
Merge pull request #1227 from tschaub/interactions-option

Interactions option not respected.
Be more strict with types
Factor out ol.webgl.Context
Track current program in context, rather than renderers
Rename ol.renderer.Layer#renderFrame to prepareFrame
Add and use ol.renderer.webgl.Layer#composeFrame
Factor out layersToDraw
Add and use ol.renderer.canvas.Layer#composeFrame
Experimental canvas vector layer renderer
Use experimental canvas vector layer renderer
Add synthetic-data example
Pass context instead of canvas when creating ol.renderer.canvas.Vector