Combined DecodedConnection and Connection

The behavior of a connection now depends on `pre` and `post`, either of which can be a node, ensemble, or neural population.

This comes as a result of discussion in #203 and #204, which I'm going to close. Any further discussion can happen in this PR.

The best place to look if you're curious what's going on is the updated `test_connection.py`, which has tests for (I believe) all of the relevant cases: Node -> Neurons, Ensemble -> Neurons, Neurons -> Node, Neurons -> Ensemble and Neurons -> Neurons.