Fix solution transfer with hanging nodes

Trying to piggy back on your pull request (I hope?).  I think this patch will fix the crash that you saw with some of the free surface tests.

The FreeSurfaceHandler now keeps track of two ConstraintMatrix objects, one for mesh displacements, the other for the mesh vertices.  The mesh_vertex_constraints is the one that we want to apply after redistributing.