Refactor loading SurfacePlot to use Graph3D (stub).

Refs #9970
Include <string> int IProjectSerialisable.

Refs #9970
Implement Graph3D::loadFromProject.

We can now load SurfacePlots from project files.

Refs #9970.
Refactor ApplicationWindow::openTable.

Now openTable calls Table::loadFromProject (which is only a stub so far,
its implementation is forthcoming in the next patch)

Refs #9970
Resolve some cppcheck warnings and errors.

In the case where a `throw` is removed, the `return` may be replaced with
a new `throw` at a later date, as part of a polishing stage of this
branch.

Refs #9970
Implemented Table::loadFromProject

Refs #9970