Add foil & foil-changer positions to Vesuvio IDF.

Refs #8378
Rename VESUVIO analyser parameters to make way for foil parameters.

There are foil parameters that will require similar names so they have
been made more explicit.
Refs #8378
Add resolution parameters for the foil components.

Refs #8378
Skeleton algorithm & test.

Refs #8378
Have separate names in Vesuvio definition for foils in position 0 & 1.

Refs #8378
Add/rename some helper methods in ComptonProfileTestHelpers.

Refs #8378
Fix VESUVIO foil shape/location definitions.

The shapes are slightly more accurate to improve theta calculation.
Refs #8378
Algorithm now caches required instrument geometry.

Refs #8378
Convert CalculateGammaBackground to use input function.

This will allow it to use the same function types that has been set during
the fitting procedure and does not then hard-code the mass profiles that
will be used to calculate the spectrum.
VESUVIO parameters have been tidied up and the foil-specific ones added.
Refs #8378
Fix foil position definitions so that they sit at phi=0

The foil-changer also has been changed to switch the radius with the height.
This now gives the correct integration range for CalculateGammaBackground
Refs #8378
Fix the theta/phi angles for the forward scattering detectors.

They all had the incorrect sign as the VMS detpos.dat file says that they
all belong in the mirror positions to each other. The absolute scattering
angle remains the same so the original fitting is unaffected. It does,
however, affect the gamma background calculation as this relies on knowing
the distance between a given foil & detector.
Refs #8378
Fix spectrum Y values that do not fall in forward scattering range.

Refs #8378
Fix ComptonProfile attribute storage.

If the base class method is not called then the IFunction::asString method
does not work as expected.
Refs #8378.
Merge branch 'feature/8378_gamma_correction' into develop