multiplex filtering

The FeatureFinderMultiplex algorithm consists of two parts: filtering and clustering. This pull request contains the filtering part. The algorithm is coded in MultiplexFiltering. PeakPattern as well as FilterResult, FilterResultPeak and FilterResultRaw are auxiliary classes.

The algorithm filters profile and peak data (first screenshot) for regions containing information about peptide pairs (red in second screenshot). Six filters are applied, the first two to picked data, the remaining four to the profile data (MultiplexFiltering.cpp line 175 ... 276). Peptide pairs show characteristic isotopic peak patterns, e.g. for an Arg6 SILAC lalbelled 2+ pair the peaks have relative m/z shifts of 0, 0.5, 1, 3, 3.5 and 4Th. Such patterns are stored in PeakPattern. For each peak pattern, the algorithm generates one FilterResult containing a subset of the picked (FilterResultPeak) and profile data (FilterResultRaw).

![multiplexfiltering_raw](https://cloud.githubusercontent.com/assets/6149805/3327911/b064e036-f7b5-11e3-9ed2-f80e36c2cf93.png)
![multiplexfiltering_8da2](https://cloud.githubusercontent.com/assets/6149805/3327915/b5d41230-f7b5-11e3-93b8-998732ff18cf.png)
can index be negative? is int the correct type for index?