* Implemented resource snapshot and unloading.

* implemented simulation snapshotting via context::Snapshot()

* Created DoRegistration method where agents should do all registrations.
  Model::Build method calls DoRegistration. No registrations should occur from
  Build methods. This allows reregistering for sim restart/init without having
  to call the build method ever more than once. Agents are responsible for
  tracking their (un)registered states.

* Added NextIds tracking table for persisting/loading static next id vars

* Removed units from generic resource. Cyclus resources should have a single
  unit per resource type - that is how the core treats all resources for
  resource exchange and elsewhere.

* Added extra MaterialInfo table to record/reload misc internal state not
  already in output db

* Added extra GenericResource table to record internal state - state ids and
  qualities. Added next_state_ static var to track Gres state ids.