Minor cleanups.

Specifically: Make the FiniteElement::clone() function public, as it is of
general use. Also: Move several member variables from private to protected
as these are generally variables that derived classes are supposed to
initialize; this allows to remove rather random friend declarations for
these derived classes.