First cut at using same functions for spectra/bin plots

They'll use a switch that will just change the data source type.
Refs #9402
Rename MantidQwtMatrixWorkspaceData to QwtWorkspaceSpectrumData

It more accurately describes what it does.
Refs #9402
Use different data classes for bin/spectrum plotting.

Refs #9402
Fix legend item naming to take into account spectrum/bin type.

Refs #9402
Flip python plotBin to use new internal plot1D command.

The MantidUI::plotBin function is now not required.
Refs #9402
Missed data class tests when moving files around.

Refs #9402
Fix doxygen warnings.

Refs #9402
Put back data class assignment operators.

The QwtData base class declares a protected assignment operator but
MSVC isn't happy with leaving the compiler to define one so we have
to implement one ourselves.
Refs #9402
Add a test for the new QwtWorkspaceBinData class

Refs #9402
Avoid table when creating bin plot from matrix.

Refs #9402
Fix bug with axis labelling for bin plots.

Refs #9402
Remove unused function.

Refs #9402
Leave spectrum/bin index checking to respective Data class.

Refs #9402
Merge remote branch 'origin/feature/9402_bin_plots_no_table'