Have SpectraAxis treat values as in bins when asking for index.

Refs #9435
Specialise NumericAxis to assume bin edges

Refs #9435
Numeric axes can now find index assuming value is in a bin.

Refs #9435
Fix a few instances to use the new BinEdgeAxis class.

Refs #9435
Fix MatrixWorkspace IMDDimensions implementations of bin lengths.

They need to take into account whether the data is actually binned or not.
Refs #9435
Implement lazy caching in SpectraAxis for looking up a spectrum value.

Refs #9435
Use same raster data source for slice viewer and colorfill plot

The caching in the framework means that the performance is now
acceptable in both cases.
Refs #9435
Use BinEdgeAxis class in CreateWorkspace

Refs #9435
Fix all places using SpectrumAxis::setValue

Replace them with proper call to setSpectrumNo
Refs #9435
Use BinEdgeAxis instead of NumericAxis for histogram axes.

Refs #9435
Remove SpectraAxis::setValue calls in AlgorithmsTest.

The workspace spectra are now modified directly.
Refs #9435
Add Python export for BinEdgeAxis

Refs #9435
Remove SpectraAxis::setValue calls in DataHandlingTests

Refs #9435
Remove SpectraAxis::setValue usage in CurveFitting tests.

Refs #9435