Lazily create ol.defaultFeatureStyleFunction

Besides the slight performance benefit of not prerendering the default
circle style until we need to, this change also allows loading OL3
in browsers that don't support the canvas API (IE 7-8). If the circle
style is rendered on load, the lack of HTMLCanvasElement#getContext
causes IE 7-8 to bomb, regardless of if vector styles are used at all.
Keep track of intersecting segments

Because we have nodes sorted by segment distance from the
editing vertex in #handleMouseAtPixel(), it is cheap to create a
hash of intersecting segments there. Now in #handleDragStart(),
we do not need to measure the distance of the vertex to the
segment. Instead, we just test if the segment is in the hash.
Added another linestring to show shared segment editing
Limit shared segment editing

To avoid surprises, we enable shared segment editing only on
segments that have the same vertex coordinates.
Add a layer with real data to the example
Check arguments passed to ol.geom.Polygon#setFlatCoordinates
Check arguments passed to ol.geom.MultiLineString#setFlatCoordinates
Check arguments passed to ol.geom.MultiPolygon#setFlatCoordinates
Add ol.geom.LineString#appendCoordinate
Add ol.geom.Polygon#appendLinearRing
Add ol.geom.Polygon#getLinearRing
Add ol.geom.MultiPoint#appendPoint
Construct individual points directly from flat coordinates
Add ol.geom.MultiPoint#getPoint
Construct individual line strings directly from flat coordinates
Add ol.geom.MultiLineString#getLineString
Add ol.geom.MultiLineString#appendLineString
Add test for ol.geom.MultiPolygon#getPolygons
Tidy up ol.geom.MultiPolygon#getPolygons
Add ol.geom.MultiPolygon#getPolygon