Separate load requests from feature requests

This separates the action of requesting an extent to be loaded from the action of requesting cached features.  The renderer (or any other consumer of a vector source) calls load to request a data extent.  A `featureload` event fires when new features are loaded.  The renderer (or any other consumer) separately asks for cached features given an extent.  This vector source only loads features once, but this separation will also work with sources that make multiple requests for data in different extents.

This also removes the `data` option from the vector source in favor of a `features` option.  Since we no longer have shared data structures for geometries, people can manually create features and pass them to a vector source.  The `addFeatures` method is exported as well.  This is used to add features to a source that don't have a representation on the "remote" (or server).
Add forEach method to rtree, use it in feature cache

This saves having to create feature lookup objects and iterate through lookup properties multiple times.
Unused getFeaturesByIds_ method
Test for vector source load method
Tests for getFeatures method
Test forEachFeatureInExtent
Test featureload event
Test featureadd event
Test removeFeatures and featureremove event
Merge pull request #1282 from tschaub/vector-source

Vector layer/source refactor.
Add lineCap property to ol.style.Stroke
Remove unused ol.style.Fill.equals
Remove unused ol.style.Stroke.equals
Add lineJoin property to ol.style.Stroke
Add miterLimit property to ol.style.Stroke
Add lineDash property to ol.style.Stroke
Fix indentation
Use ol.structs.RBush in ol.source.Vector
Get rid of ol.structs.RTree
Rename rbush test to match the naming scheme