lazy decay option and misc cleanups and tweaks

* lazy decay option decays materials every time the Material::comp function is
  called.

* Added ability to call Material::Decay with a negative time argument that
  causes the decay operation to run with the material's context's current
  time.  Throws if the material has a NULL context.

* fixed sim_init tests - they previously counted on optional normalization for
  material compositions that has now changed.  Note that API is identical -
  the doc comments for the relevant functions explicitly states that returned
  composition are not normalized.
And the eps argument should probably be a context/simulation level variable (maybe).  There is already an issue I believe for this.  In any case, the way to handle it depends on a few bigger decisions that haven't been made yet - and that need more attention than just doing a quick tweak.