multiplex clustering

The pull request contains the second part of the FeatureFinderMultiplex algorithm. The multiplex filtering results (red in first screenshot) are grouped to clusters corresponding to different peptide pairs (same colour in second screenshot). The pull request is based on #868 and #880.

LocalClustering contains a general purpose clustering algorithm. The dimensions of individual clusters are assumed to be much smaller than the dimension of the entire dataset. The problem is therefore reduced to a local clustering problem. The clustering algorithm can be used for peptide quantitation, RT-alignment or feature linking. Cluster and HashGrid2 are auxiliary classes.

In MultiplexClustering the LocalClustering algorithm is applied to the multiplex filtering output of #868. Each final cluster contains all profile/peak data for one specific peptide multiplet.

![s1](https://cloud.githubusercontent.com/assets/6149805/3540804/73c7b31e-0846-11e4-8005-9e204d2c3cec.png)
![s2](https://cloud.githubusercontent.com/assets/6149805/3540807/77cf13f8-0846-11e4-9ea3-699310401ad2.png)
The main point of the algorithm is the assumption of the final clusters to be small. Hence the problem reduces to a Local Clustering problem.

One could name it HierarchicalClustering. But IMO there is not much similarity left with the classical hierarchical clustering approach.