Added TSVSerialiser utility class. Refs #9970

This class provides useful deserialisation routines for loading
and saving project files. Currently it only supports loading but
it will be given support for saving in the near future.

Hopefully this will help to seriously reduce the technical debt
of loading and saving project files.
Revert to fix broken build. Refs #9970
Add TSVSerialiser class. Refs #9970

This time it ought not break the build.
Fix most of, if not all, of the cppcheck warnings.

Refs #9970
Fix cppcheck warning in TSVSerialiser. Refs #9970
Fix crash when loading spectrogram. Refs #9970
Start refactoring project loading in AppWindow.

This is the first broad stroke of refactoring to use the new
TSVSerialiser class for loading/saving projects. It works, but it's far
from complete. There are a few known bugs, and a few more unknown ones
too.
Fix build on OSX. Refs #9970
Fix spectrogram loading error found by cppcheck

Refs #9970
Create IProjectSerialisable interface.

This is the first part of the interface needed for the project
loading/saving refactoring. It specifies the method used to
accept input lines from a project and apply them to the window.

Refs #9970
Begin moving MultiLayer parsing into MultiLayer itself.

Refs #9970
Fix minor bug where project root folder was left unnamed.

Refs #9970
Change IProjectSerialisationInterface to ease further refactoring.

Refs #9970
Add float parsing to TSVSerialiser

Refs #9970
Implement most of Graph::loadFromProject

This is the vast majority of loadFromProject implemented.

Yet to be implemented:
 - <spectrogram>
 - <AxisFormula (N)>

Unable to be implemented currently:
 - <CurveLabels>
 - <MantidYErrors>
 - <SkipPoints>

This is because their parsing depends on their order relative to the
definition of curves in the project file. We cannot handle this
correctly because we do not discern the order of elements when parsing.
To resolve this, we will either have to make TSVSerialiser a lot more
sophisticated, or break backwards compatibility for a few small cases.

Refs #9970.
Fix typo in date. Refs #9970
Remove legacy cruft.

 Assertion: Mantid was forked from QtiPlot 0.9.5
 Therefore: Mantid has never saved a project file with a format older
            than 0.9.5.
Conclusion: It's safe to delete this cruft as it'll be never used.

Refs #9970
Refs #9970. Tweak comment.
Stub out ApplicationWindow::openGraph

We're not yet at the point of being able to delete this, but we're
getting close, so for now let's stub out this function.

Refs #9970
Remove unused methods from ApplicationWindow.

These were used by openGraph. They have been moved into the Graph class.

Refs #9970.