Enormous patch for free surface framework.

This is a squash of over 100 patches that implement the ability
to do free surface calculations in Aspect within an Arbitrary
Lagrangian Eulerian framework.