Unmagify network

As per recent discussions, this PR removes the magic from `Network`.

This is still a WIP as I'm not done converting all of the networks, but I wanted to make this PR now to get comments on how the revised networks look. In my opinion, they look simpler, and should be much easier to extend.

A common thing we were doing before was adding in new arguments whenever something needed tweaking, but that's not a good long term solution. Now, we should be using config objects to set the same properties for groups of objects. The revised `nengo.networks.actionselection.BasalGanglia` is a good example of this. However, there is a bit of an issue in that it introduces some global state (if you change some default for `actionselection.gaba_config`, it will affect all basal ganglias from that point forth [though not any from before the change]).
Not related to this PR, but should we be using our 'piecewise' function for this? It would make these more concise, and maybe encourage users to use it too (if they look at the tests).