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
- Some package reorg
Moved many things to use the new API when possible

- No more SimModel, Model has subsumed all SimModel functions
- sim_objects are now repsonsible for adding to the model, like model_objects
  - They have an add_to_model function that does this
Moved everything to objects.py

- Everything's needed anyway
Updated documentation.

- Not quite up to date, but better than before
- Also added nef_minimal.py
Separated out connections

- Various changes to get tests working
  - All work now except new API tests
New API almost works

- Using 2drepresentation.py as a test for now
init IPython controlledoscillator example
running controlledintegrator example in IPython
new title for controlledintegrator ipynb
Changes to new API, 2drepresentation example works

- New API can make filtered probes now
- Old API connections fixed (dimensionality issues)
- Added ability to serialize model to JSON and Pickle,
  very useful for looking at models, but loading not implemented yet.
Lots of unit test changes

- Added helpers to run tests in multiple simulators
- Old API tests extracted out to test_node and test_ensemble
  (work in progress)
- Removed some empty test files
- Plotting simplified; plots should be saved to simulator-specific
  folders, not shown (added a context manager for this in helpers)
Added some examples using the old API
Fixed pstc in controlled integrator example