Storing selection layer and selected features on the layer

With this change, other interactions that rely on selection can
get along without knowing about the Select interaction.
Removing no longer needed getFeatureWithUid method.
Adding equals method for comparing coordinates
New closestOnSegment function

This function also provides point to segment distance
calculation, so the squaredDistanceToSegment function in the
geom package can be replaced with a call to
ol.coordinate.closestOnSegment.
invalidateBounds method on geometries
Method to set vertices.

This might not be the right way to deal with in-place geometry
changes, but for now it is useful for editing.
Do not clone bounds

If we decide later that we want to clone bounds, we need to
clone the array instead of just referencing it.
Adding ModifyFeature interaction

This is a first draft. The way geometry changes are handled for
now is a bit clumsy. Both updating the feature cache RTree and
making the layer aware of feature and geometry changes could be
handled in a smarter way if these changes would be made through
the layer instead of directly on the geometry or feature.
Exporting Modify interaction
Fixing doc tag
Working with new extent structure
Correctly modify bounds
Update example with more distinct colors and no social links
Making addIndex private
Removing the clear method from the layer

We'll want this back eventually.  But this lets us have a predictable structure
for the vector layer event object.  When we do add a clear method, we could add
a different event type that didn't come with features and extent.  At the same
time, we can give this vector event object a more specific name.
Separate add listener from method that adds index
Rename method
Extent now always comes with change event

In the future, we will want to have events that don't come with extent.  To handle this, we should add a new event type instead of allowing the extent property to be undefined on the event object.
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.