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.
Merge branch 'feature/9970_refactor_project_serialisation' into develop