Added algorithm PoldiPeakSearch

The algorithm is very close to the original fortran program. There are
still some tests/documentation missing.
Added checks for edge cases, completed unit tests
Chose some more clear variable names, added a few comments
Added check for minimum peak separation
Moved comment about background to appropriate location
Fixed off-by-one errors in PoldiPeakSearch, background computation

PoldiPeakSearch now calculates background and sigma and assigns sigma to
the correlation workspace as error.
Added documentation to PoldiPeakSearch
Removed C++11-features from PoldiPeakSearch, corrected unit test
Merge branch 'poldi-peaksearch' into feature/poldi-peaksearch
Removed duplicate from CMake file
Added utility class for Miller indices
Added operators to UncertainValue

UncertainValue now has arithmetic operators for use with double-values
(exact numbers without uncertainty).

Checks for negative uncertainties in constructor were added (will throw
std::domain_error), so PoldiAutoCorrelationCore could be simplyfied
slightly by abandoning explicit checks for negative sigmas.
Added 0-division check to UncertainValue-operators
Added default constructor for MillerIndices
Added class for POLDI peaks

The existing Peak-class does not really fit, since it's explicitly
written for single crystal calculation and it works with UB-matrices
etc, which is not required for the POLDI-related problems.
Changed interface of PoldiPeak

Factory methods now return shared pointers to instances.
Added simple PoldiPeakCollection

PoldiPeakCollection will be an adapter between a convenient structure to
hold a collection of PoldiPeaks for processing and a permanent and easy
to handle structure in Mantid.
Adapting PoldiPeakSearch to PoldiPeak/PoldiPeaksCollection
PoldiPeakSearch now uses UncertainValue for background
Implemented general comparison operators for PoldiPeak

PoldiPeak::greaterThan and PoldiPeak::lessThan take two shared pointers
as argument and a pointer to a member function of PoldiPeak which takes
no arguments and returns an UncertainValue. boost::bind is used to tie
the supplied instances to these member functions and call them. The
results are then actually compared. These comparison functions can be
passed to std::sort, again with bind (see unit tests for demonstration).
This way, comparison operators need to be defined once and work for all
(numeric) properties of a PoldiPeak.