Improved Mesh and Node classes.

Surface::GenerateMesh now returns shared_ptr, one less unnecessary copy
construction of Mesh.