WIP: Testing improvements

So far, I've made the switch to using py.test. Testing scripts should look much cleaner now, and using pytest-xdist, it's possible to run them in parallel (`py.test -n 7` runs in 16 seconds on my laptop, compared to about 45 with just `py.test`). Another concrete benefit so far is that it's a lot easier to do parameterized testing, so running tests with different neuron types is trivial. I've done this in several places now, so networks and a few other tests are now run with LIF, LIFRate, and Direct nonlinearities.

This is a WIP because I want to have examples being run by the test suite before merging this. The examples are out of date, so now's the time to make sure they're getting run before each pull request is merged in.