Direct mode works like Nengo 1.4

This PR makes direct mode work more like you'd expect from having used 1.4; now, you can just replace `nengo.LIF(N)` with `nengo.nonlinearities.Direct(N)` and everything works as expected. It means that you can, at the top of your script, do something like `nl = nengo.LIF` and `model.make_ensemble(nl(N), ...)` and it will work whether `nl` is `LIF`, `LIFRate`, or `Direct`.

E.g., this is the result of running `test_ensemble.test_prod` with `Direct`.
![test_ensemble direct test_prod](https://f.cloud.github.com/assets/203709/1509923/c8348296-4a6a-11e3-8c0c-8ed85289a05f.png)
Note that unlike Nengo 1.4, filters are respected, and you'll get the usual startup transients and delays.

For more details about what was happening before, see the last commit message. Note that what used to be `nonlinearities.Direct` (which is what `Nodes` use) is now `nonlinearities.PythonFunction`.

There are a few other changes and simplifications in this PR, like removing `ConstantNode` and `SignalConnection`. See the individual commits for details.