Implemented Direct mode

The way we were thinking about direct mode previously doesn't match the
semantics of Nengo 1.4. Basically, we were treating direct mode
ensembles like nodes, which is incorrect.

A node takes input and computes one function, providing the results of
that function as outputs. Connections from nodes cannot compute
functions. Direct mode ensembles, on the other hand, do not actually
compute anything, they just perfectly represent their input. Connections
from direct mode ensembles can have functions, and they should be
directly computed rather than approximated with decoders.

I implemented a new Direct class that implements the same interface as
other Neurons classes do. I rearranged the nonlinearities module quite a
bit so that this makes sense. In the build process, decoded connections
have a bit of custom code to skip build decoders, and instead compute
the function directly.

What was previously the Direct class (which was mainly used for Nodes)
has been renamed to PythonFunction, which is a bit more descriptive as
to what this nonlinearity actually does. Nodes now build a
PythonFunction in the build step. Decoded connections from direct mode
ensembles also build a PythonFunction in the build step.

Unlike Nengo 1.4, Direct mode ensembles and connections to and from them
still respect the filters that are applied to them. Therefore, the
output of a direct mode ensemble is not precisely the same as its
input (as is the case in Nengo 1.4), and when filters are applied there
are startup transients and all that kind of stuff.