Hunse fixes

Main change is to fix LIF.rates to take gains into account. This makes it easy to directly use a LIF object to get firing rates for some LIF neurons (I actually use this in my own code). Everything on the simulation end is still the same (i.e., gains are still bundled into encoders for simulation, just not before).

I also made docs/conf.py PEP8, so that if you run flake8 in your own nengo directory it doesn't throw a bunch of errors.