Skeleton WebGL vector support

This PR adds initial skeleton support for rendering vector data with WebGL. There's an example, `ten-thousand-points`, for demonstration.

Some outlines:
* Coordinates are stored in fixed-size flat arrays (`ol.struct.Buffer`)
* These arrays have mechanisms for tracking which elements have been modified and which elements are actually used
* `ol.geom2.PointCollection` and `ol.geom2.LineStringCollection` build on top of `ol.structs.Buffer` to manage geometries whose coordinates are stored in these fixed-size flat arrays
* Vector sources contain zero or more collections of each type
* A skeleton WebGL renderer renders points and lines in a fixed style

There's still a lot missing, including:
* Adding support for features built from one or more geometries
* Polygon geometries
* Styling
* ...