preliminary version of clusters

Adresses issue #1573 . Preparation for clustering, with an example that clusters random points and prints the clusters to console. Things to be done:
1) Tests
2) Refactoring
3) Not clustering features outside the given extent
4) Recalculating clusters on zoom/extent change
5) Clicking on cluster should zoom to the extent of the clustered features
6) (maybe add support for more clustering algorithms?)

Any other suggestions are welcome.
it turns out this isn't a great test for several reasons:

* the extent returned by `this.getExtent` comes from an internal rbush thing and not from a previous call to `setExtent` so the extent is never the same and loadFeatures is called continuously because `clear` followed by `addFeatures` triggers a new map render.
* you cannot compare extents this way, you need to do something like `!ol.extent.equals(extent, this.getExtent())`

For the purpose of caching the currently rendered extent, I think a separate instance var will be needed (perhaps `clusteredExtent_`)