Make DetectorEfficiencyCor search recursively for parameters.

Refs #8057
Allow ScaleX to take its factor from an instrument parameter.

Improved unit test coverage at the same time as there were no tests for
the EventWorkspace case.
Refs #8057
Add a performance test for parameter lookup in ParameterMap

Refs #8057
Code cleanup in ParameterMap.cpp.

* Removed const char methods that are better done by making the constructing
the string once in the calling code.
* Removed commented out code that polluted the cpp file.
* Reordered methods that match declaration order.
Refs #8057
Improve the ParameterMap recursive searching code.


Avoids instantiation of separate shared pointer & custom deleter.
Refs #8057
UpdateInstrumentFromFile supports .dat files natively.

The header can still be overridden using the AsciiHeader property.
Refs #8057
Improve code in DetectorEfficiencyCor

* Define static variables for pressure/thickness parameters
* Avoid copy on getDetectorIDs
* Pass shared pointer by reference
* Use list for accumulating invalid spectra
* Invalid shape now throws NotFoundError
* Remove raw file and LoadDetectorInfo usage from unit test. It was adding
  no benefit over what could be testing with a simple in-memory workspace.
Refs #8057
Add some debugging statements to GetEi2.

Refs #8057
Allow dgreduce to work with an input workspace and no cal file.

This assumes the calibration has already been applied to the input
workspace and allows it to be done once.
Refs #8057
Add pressure/thickness/delay time parameters to definition files.

Their names have been changed to make them more consistent with those
used by other direct geometry instruments that already had these
parameters in files:
* 3He(atms)->TubePressure
* wallT(m)->TubeThickness

The DirectEnergyConversion scripts now apply the calibration straight
after loading and pick up the detector parameters from the IDF files,
removing the need for the LoadDetectorInfo algorithm.

Refs #8057
Add NULL component pointer check to ParameterMap::get

Refs #8057
Fix test for existing workspace in dgreduce.py

Refs #8057
Allow dgreduce to apply calibration to pre-loaded workspace.

Refs #8057
UpdateInstrumentFromFile now accepts ISIS Event Nexus files.

Refs #8057
Add a Combine option to ScaleX

This allows a factor from an instrument parameter to be combined
with an overall input factor from the algorithm property. This can
be useful for combining two ScaleX operations together to only loop
over the data once.
Refs #8057
Combine the detector delay offset into the monitor offset.

Refs #8057
Merge branch 'feature/8057_remove_loaddetectorinfo_dec'