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]).
How much do we care about Python 2.6? IIRC, this isn't the first time we've had to jump through a hoop to support it. Is there some reason we chose to support it but not 2.5? Just wanted to throw that out there.