BLBXVI-40 - split off conditional logic in InterpolationFunction.evaluate() to separate function to better facilitate inheritance.
BLBXVI-40 Derived InterpolationWithoutExtrapolationFunction from InterpolationFunction to remove extrapolation past lookup bounds.
BLBXVI-40 (8.38) - Added property to LookupTableConverterHolder to specify whether the converter should extrapolate past the lookup table range. Allowed by default.
Fixed format statement and removed redundant print in
InterpolationFunction
BLBXVI-40 (8.38) IllegalArgumentException for value out of lookup table on Converters that do not allow extrapolation are now passed up, rather than being wrapped in the generic exception from LookupTableQuantityConverter.
BLBXVI-40 (8.38) added Unit tests for LookupTableQuantityConverter for cases where value is out of lookup table range (with and without extrapolation).
Merge remote-tracking branch 'origin/8.38' into 8.38.mt
GDA (8.38.mt cherry pick from master) Changed NexusDataWriter to use SrsDataFile object when writing srs files. *Still needs work*

Breaks some functionality. May be restored for 8.40. See TODO in class.

Conflicts:
	uk.ac.gda.core/src/gda/data/scan/datawriter/NexusDataWriter.java
Changed SRS metadata class to allow reading from "metashop" collection instead of using its own internal collection
8.38 temporary fix until GDA-5974 is done.
Changed roi (HardwareTriggerableDetectorDataProcessor (DetectorDataProcessor.py)) .getDescription(), getDetectorID() and getDetectorType() to return " " instead of an empty string so we could write Nexus Files.
Removed the listing of metadata when from meta_add and meta_rm (works very badly when used in scripts).
Fixed NXMetaDataProvider to better handle PyIntegers when creating group data.
GDA (8.38.mt 8.38 ONLY) Fix GDA-5956 - Deadlock in scan shutdown - Paul G has a better plan for master and 8.40
Merge remote-tracking branch 'origin/8.38.mt' into 8.38

Conflicts:
	uk.ac.gda.core/src/gda/scan/MultithreadedScanDataPointPipeline.java