Restart file format changes

Add support for restarting:
* common::BinaryDataReader/Writer for working at the level of tables and lists
* mesh::cf3mesh::Reader/Writer for capturing a complete mesh structure and data
* solver::actions::Read/WriteRestartFile for reading and writing only field data without saving a mesh

To accommodate testing, common::ArrayDiff and common::MeshDiff were added as well