Intel 13 warns about "invalid narrowing conversion" when a constant
like 3./8. is stored in a float, but only in code that uses
"curly-bracket initialization".  So we typically only see these
warnings in libmesh when creating C-sytle arrays.

In cases where a finite decimal representation of a rational number
does not exist, I've used the "f" suffix to prevent the warning.

Finally, note that while there seems to be no difference in the bitwise
representations of:

  Real x = 8./7.;
  Real y = static_cast<Real>(8.L / 7.L);

when Real==double, there _is_ a difference when Real==long double,
so I've maintained the long double constants when possible.
Explicitly instantiate single-Point version of FE::inverse_map() to
try and satisfy Intel 14 compilers.
Adding Rong, 2013.

Rearrange templates so article is at the top.
Nagler 2013 preprint is back with DOI.
initial addition of CheckpointIO capability