Vector layer/source refactor

Move the feature cache from ol.layer.Vector to ol.source.Vector.

Proposed `ol.source.Vector` API:

 * `getFeatures(opt_filter)` - Called by application code to get features from the local cache.
 * `addFeatures(features)` - Can be called by application code to add client generated features.  These features don't have a representation on the remote source.  A `featuresadded` event is fired.  A transaction listener can listen for this event, maintain a reference to added features, and later issue a transaction to have them persisted.
 * `removeFeatures(features)` - Can be called by application code to remove features from the remote source.  A `featuresremoved` event is fired.  A transaction listener can listen for this event, maintain a reference to removed features, and later issue a transaction to have them deleted from the remote source.
 * `load(extent, projection)` - This will typically be called internally (by the renderer).  A `featureload` event will be fired when loading/parsing completes.
 * `forEachFeatureInExtent(extent, projection, callback)` - Calls the provided callback with features already cached.  Note that this is synchronous and does not trigger loading.  This will be called by the renderer.