Refs #9445. Added PoldiInstrumentAdapter

This is needed in more than one place and bundling it in one place will make it easier to replace later.
Refs #9445. Added PoldiSpectrumDomainFunction class
Refs #9445. Created 2D-spectrum calculation test
Refs #9445. Added missing typedef

Missing typedef did not let the code compile
Re #9445. Corrected the multi-domain Fit call.
Refs #9445. Added PoldiSpectrumDomainTest.h to CMakeLists
Refs #9445. PoldiPeakCollection now holds peak intensity type

A PoldiPeakCollection now stores information about the type of intensity
information assigned to the contained peaks. Some parts need to work
with the peak maxima, others need the area. This information is now put
into the workspace logs and processed.
Refs #9445. PoldiCalculateSpectrum2D processes POLDI peaks

Instead of the fixed example peak, a peak table is now loaded and the
corresponding functions are constructed.
Refs #9445. Corrected calculation of deltaT
Refs #9445. Added clone method to PoldiPeak

Also added equality operator to MillerIndices, since the lack of it was
failing the test for PoldiPeak::clone.
Refs #9445. PoldiPeakCollection stores profile information

PoldiPeakCollection can now store information about which profile
function has been used to fit the peak parameters. This is required for
possible peak integration in PoldiCalculateSpectrum2D.
Simplify shared_ptr extraction from Python object

Also avoid using the raw Python C API in favour of the boost python wrappers to
ensure that the reference counting is dealt with properly
Refs #9513
Refs #9445. Added profile function check to PoldiPeakCollection
Fix PythonAlgorithmTraitsTest

The object returned from the factory now has been downcast to the
correct type in Python meaning in the tests the methods are bypassing
the base class in some cases.
Refs #9513
Refs #9445. Extracted time conversion from PoldiSpectrumDomainFunction
Refs #9445. Added PeakFunctionIntegrator

PeakFunctionIntegrator takes an IPeakFunction and integrates it numerically using GSL routines.
Refs #9445. Fixed NaN-problem in PoldiTimeTransformer

PoldiTimeTransformer::detectorElementIntensity produced NaN when a
wavelength outside the spectrum boundaries was calculated, because that
would be negative.
Refs #9445. Added total intensity calculation to PoldiTimeTransformer
Refs #9445. PoldiCalculateSpectrum2D now integrates peak profiles
Refs #9445. PoldiFitPeaks1D stores profile information in table