Updated Simulation to support class-based models

Here are my proposed changes for how Topographica should interact with the new class-based models.

I decided against automatically loading the model when Topographica is run from the command-line. This would be very easy to implement by adding the following to the end of the ``topographica`` script:

```python
if topo.sim.model: topo.sim()
```

The issue with this is that it gives the modeler no opportunity to tweak the model before loading it in the interactive Topographica environment (i.e. at the Topographica's IPython prompt). This would negate one of the big advantages of the new system - tweaking models without needing to load large components into memory.

If the user forgets to call ``topo.sim`` after setting ``topo.sim.model``, the model will be automatically loading as soon as ``topo.sim.run()`` is invoked.
Please add a docstring for this method explaining what it's all about, once this PR has been merged.