Add and remove features with meaningful events

This adds a removeFeatures method, and makes the CHANGE event
more useful by adding information about changed features and
extent.
New pruneTileRange method

This also adds an assert that cache values are an instance of
ol.Tile in expireCache, instead of doing a type cast. Later we
will want to enforce the ol.Tile type by overriding the set
method.
Expire tile by range and listen to changes

Instead of just listening for the first change, we now listen
for all changes, and expire tiles by tile range. The outcome is
that the vector layer's addFeatures and removeFeatures methods
now show instant results on the rendered map.
Removing addFeatures from the API
Re-adding type cast, as suggested by @elemoine
Merge pull request #850 from ahocevar/vector-events

Render changes when adding and removing features