Add saveToProject to IProjectSerialisable and use it.

Refs #9970.
Start refactoring Table to use saveToProject.

Refs #9970.
Refactor Table::saveToProject to use TSVSerialiser.

Refs #9970.
Correct minor error when parsing TableStatistics.

Refs #9970.
Stylistic tweaks to TSVSerialiser.

Refs #9970.
Replace Matrix::saveToString with Matrix::saveToProject.

Refs #9970.
Tidy up newMantidMatrix orphans.

Refs #9970.
Tidy up MantidUI::openMatrixWorkspace.

Refs #9970.
Replace MantidMatrix's saveToString with saveToProject.

Refs #9970.
Added diffraction correction code into IDA

Refs #10094
Fixed typos in AbsCorr

Refs #10094
Refactor ApplicationWindow::windowGeometryInfo.

Refs #9970.
Replace MultiLayer's saveToString with saveToProject.

Refs #9970.
Refactor Grid::saveToString.

Refs #9970.
Refactor Graph::saveScale()

Refs #9970.
Refactor Graph::saveCurves() into Graph::saveCurve()

Refs #9970.
Refactor Graph::saveMarkers()

Refs #9970.
Refactor Graph::saveToString to Graph::saveToProject.

Refs #9970.
Graph doesn't need to inherit IProjectSerialisable.

Graph itself is not a top level window that's saved as part of a
project. It's a child object of MultiLayer. MultiLayer handles loading
and saving graphs explicitly, so the interface is simply not needed
here.

Refs #9970.
COpy reset script to build config dir

Refs #10015