RichardsMaterial substantially tidied up and derivatives are now
calculated wrt general variables rather than just porepressures

Also, some optimisation has been included with not calculating
SUPG things if no SUPG is used

Kernels have been updated to use these more general derivatives

RichardsSUPG now provdes a "trivial" function indicating
whether SUPG is trivial or not

RichardsVarNames now has a MooseEnum that describes what the
variables correspond to physically.  However, only the PPPP formulation
is actually coded in RichardsMaterial.

Sometime in the future I or someone else might be interested
in implementing the PSS material in full, and these changes will
make that far easier.  However, this changeset does NOT actually
implement this capability.  I have added a long essay to
issue #3241 why this is so.

Fixes #3241
Merge pull request #3351 from WilkAndy/psss_3241

RichardsMaterial substantially tidied up and derivatives are now