Added signals to Nonlinearities so that they can be probed

This turned out to be relatively easy, since the simulator was effectively
allocating signal-like buffers for the input, output, and bias terms of
nonlinearities anyway.

This change also had the the un-intended but nice consequence of removing
the need for separate neuron connections.  These are now just encoders
whose signal is the `output_signal` of some non-linearity.

This follows up on the discussion from #24 (which I will now close).