Merge remote-tracking branch 'origin/feature/9257_ccl_performance'
Move QwtRasterDataMD to QtAPI so it can be reused elsewhere.

Refs #9319
Add SignalRange class for determining IMDWorkspace signal ranges.

Refs #9319
Allow SignalRange to work with MDImplicitFunction

Refs #9319
Use SignalRange class in SliceViewer.

Refs #9319
First cut at re-using QwtRasterData for standard colour-fill plots

Refs #9319
Add methods to axis classes to find the index of a given value.

Refs #9319
Use Axis::indexOfValue methods in MatrixWorkspace.

Removes the requirement for ugly casts. It also fixes a bug
with looking up the index from a spectrum axis where it was assuming
that the spectrum number mapped directly to the index.
This fixes the SliceViewer so that it now displays ragged workspaces
correctly.
Refs #9319
Add a specialised QwtRasterData for views with only 2 dimensions

It also doesn't use any overlays.
Refs #9319
Observe ADS delete & clear notifications in Spectrogram objects.

This only applies to those created directly from a workspace.
Refs #9319
Observe replace notifications for the spectrogram objects.

Refs #9319
A couple of performance tweaks for graphing in general.

Graph::updateScale was calling replot then QwtPlotZoomer::setZoomBase,
which also calls replot so we turn of the replot in setZoomBase.
The ScaleEngine was creating the helper classes on the heap for no good
reason so removing that removes many calls to new/delete.
Refs #9319
Be smarter about finding the index from a value on a SpectraAxis

We know that the values tend to be quite close so start searching close
to the given value and then loop over everything if necessary.
Refs #9319
Use cached spectrum map lookup for MatrixWorkspace raster

This restores reasonable performance during initial drawing and resizing.
Refs #9319
Use workspace directly when creating colorfill plot from matrix.

Refs #9319
Implement a Python plot2D command for colourfill-type plots

This avoids having to create a matrix first.
Refs #9319
Use the correct plot2D default in python.

Refs #9319
Use PlotAxis classes for formatting new spectrogram

Refs #9319
Update mock MDIterator due to recent additions

Refs #9319
Merge branch 'feature/9319_no_table_colorfill_plots' into develop

Conflicts:
	Code/Mantid/MantidQt/API/test/SignalRangeTest.h
Refs #9319