SimModel now uses sets instead of lists.

- Gets of some test to make sure things are unique
Model of new API is close to working

- Added a test, same as the old_api test
- That test is failing now, trying to track down why
New API tests run!

- But are all wildly wrong.
- Also added some helpful __str__ functions
  - It should now be somewhat easy to figure out
    what is going where by looking at model.o
Tests actually do something now

- Not quite perfect, but good enough for now
- Also fixed (what I think is) a bug in old_api
Model is now always in sync with SimModel

- No longer need a model.build
- All model_objects have an add_to_model and remove_from_model
  method to handle syncing
  - This should also be true of model object-like templates
- Also fixed a few other things from the new API PR
  - implemented model.ensembles etc.
  - renamed model's dicts
- test_new_api now passes
  - By changing tolerances... not the best
Some package reorg