Allow VectorSource to load and parse data

This adds url, data and parser options to the source, and makes
EPSG:4326 the default projection. It also adds a prepareFeatures
method, which is used to load/parse data once the target
projection is known.
Removing unused methods and changing getFeaturesObjectForExtent

With this change, getFeaturesObjectForExtent may return null if
the source does not have data loaded for the provided extent.
A callback can be passed to getFeaturesObjectForExtent to get
notified when the requested data is available.
Updating examples to use the new API
Addressing @elemoine's review comments
Merge pull request #870 from ahocevar/vector-api

Give VectorSource the ability to load and parse data
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.
Adding removeFeatures to the API
Re-adding type cast, as suggested by @elemoine