Improvements to unit testing

Uses Nengo helper functions to run SimulatorTestCases.

There's a bit of a hack for nose too, which works, but it isn't as clean as the solution that works with `unittest`. This is because `nose` doesn't respect the [load_tests protocol](http://docs.python.org/2/library/unittest.html#load-tests-protocol). As nose is designed to build on top of the old version of unittest, not unittest2, this makes sense, but things will likely be easier in the long run if we use unittest primarily.

`sim_ocl` isn't working at the moment, but I tested this with a mocked out version and tests run properly with `python setup.py test` and `nosetests`.