Update to how material models are called.

o Prepare for viscoelasticity
  Base material class given a update_mat method.  It is essentially
  a wrapper to update_state.  Everywhere update_state was previously
  called by the driver now update_mat is called.  It is just a jacket
  around update_state.  The reason for putting it in is that I am
  now going to add a visco option where stresses (returned by
  update state) can relax.  Rather than put the relaxation in
  every material model - I'll just put it in update_mat after the
  call to update_state.
o With the above changes, the API to the Jacobian also changed.
  But, most materials just used a constant jacobian, so I added
  a new material attribute use_constant_jacobian that, if True,
  instructs the material to use the constant Jacobian - rather than
  define a Jacobian method that just returns the constant jacobian.