Neaten Simulator, Ethernet, add some docs

In short:
* Adds some better `stop` handling to Ethernet
* Causes `Simulator.run` to raise a `NotImplementedError` if `run` is called twice without an intervening `reset`.
* Adds `reset` to the simulator to maintain the semantics of the Nengo simulator.
* Adds documentation and comments...