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.
or make it configurable which geometry types are to be clustered. The problem with the center of extents is that with large geometries, the center may be outside the viewport