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.
Rather than getting features from `this.data`, it will need to come from another vector source.