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.
I don't know what makes sense for clustering geometries other than Point, its a discussion that will need to be had.  Filtering on Point is an acceptable limitation for v3 as it would meet most people's expectations of what clustering would do.  If someone has ideas about how to rationally cluster non-Points, this can be enhanced at a later time.