tweaked recipe xml rng definition. moved db logging out of timer and into xml_file_loader
starting to sketch out new model interface for xml2db and initfromdb. And a few other classes that will be used
regions and instutions no longer deploy their initial children.  That is the cyclus kernel's job. Changed comp->nuc in cyclus master rngs and added datatype checking to recipe fields in rng schemas
changed comp->nuc back in recipe schema. implemented kernel deployment of initial agents.
implemented querying on sqlite_backend and got everything to compile
* xml_file_loader and xml_flat_loader now dump all information pertinent to init from db to the output db
* recorder now doesn't depend on the Record method being called
* recorder::close is now idempotent
* Calling NewDatum on a closed recorder throws an exception
* removed inst_model_class_tests - CEP20 impelementation makes doing decommissioning tests an integration test issue
made LoadDynamicModules be called directly be the LoadInitialAgents method instead of by LoadSim.
working on simulation init process - does not compile
removed unused handle arg from timer+context-timer method args. Added SimInit class to build and it compiles
testing controlparam loading - it seems to work - don't forget to remove debug code from cyclus.cc
* updated dynamic loading class to only expose a single Make static method for
  constructing modules. The loaded dynamic modules are maintained in an
  internal static map. This allows loaded modules to be shared between
  context's and also between various classes.

* implemented loading of solver state from db

* implemented loading of recipes from db
QueryBackend is not a subclass of Recbackend anymore. Created a CondInjector QueryBackend that injects conditions into all its queries - used it to make SimInit loading more elegant and concise. Implemented prototype loading from db.
* Made xml_file_loader (and flat loader) take a backend instead of a context.
  They create and manage their own temp contexts internally.

* Build/Decom scheduling info is now recorded by the context after scheduling
  with the timer - this prevents bad data from being recorded if an exception
  is thrown by the timer.

* renamed Recorder::close to Close. The Close method now basically resets the
  recorder so it can be used again after Closing (although backends will need
  to be added again).

* Updated all backends to flush buffered data when their destructor is called

* Renamed recorder backend Close method to Flush.  Backends are now expected to
  be functional after a call to Flush.  Their destructor is now their Close
  method. Recorder doesn't "close" backends anymore.
updated inst model to use full deploy/decom api - and killed redundant RegisterClone* methods. Cleaned up facility api. Started work on agent initialization from db
added better error message for invalid cli flags in cyclus.cc. Added Loading of build/decom schedules. Minor tweaks
moved AgentExit db recording to model::Decommission instead of destructor.  This makes more sense - and now models only get an exit entry in the db if they are decommissioned.
removed all lifetime related functionality from facility class. Added a single virtual lifetime method to facility class. Agents that want to have a lifetime must override this method and specify it manually in their custom schema/input.
moved lifetime to be a nonvirtual method in model class.  This is a common feature and should be madhandled by default. removed deathtime member and method because it can never be used because it is set immediately prior to deallocation
renamed model_type->kind and name->prototype in the model class
renamed SetModelImpl->set_model_impl