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.