Fixing refinement issue on DisplacedMesh.

The issue is that mesh refinement is always followed by partitioning,
which requires recomputation of the Hilbert indices.  Since the
DisplacedSystem mesh is displaced inconsistently on different
processors, this can lead to inconsistent Hilbert keys being computed
on different processors, and ultimately an error during partitioning.

I tried several more or less complicated fixes for this, but the
simplest approach seems to be to simply 'undisplace' the
DisplacedSystem mesh prior to performing adaptive refinement, and then
let it be naturally 're-displaced' when the DisplacedSystem is
reinitialized.  This seems to work fairly well, and fixes the
PF_displaced_mesh_test in MARMOT, which was not working in parallel.
We can also undisplace the mesh using threads to help speed things up.

Refs #4404
Merge pull request #4405 from jwpeterson/hilbert_displaced

Fixing refinement issue on DisplacedMesh.