Break up test_reset and test_dt_dependence

We were doing too much with these tests, which will cause weird
failures for certain neuron models.

`test_reset` was broken up into two tests, one that tests that
neuron models reset properly and one that tests that learning rules
reset properly. Similarly, `test_dt_depenence` was also broken up
into two tests, one that uses LIFs and all learning rules and one
that doesn't use learning but tests all neuron types.
Add default `rates` and `gain_bias` function

In the `NeuronType` class. These defaults should work for rate-based
neurons (`rates` is based on what `LIFRate.rates` was doing already).

The `gain_bias` function is adapted from some of @tcstewar's code.
Add RectifiedLinear neuron type

In doing so, noticed some errors in the rectified linear example
notebook. Fixed those errors in this commit.
Add Sigmoid neuron type

And enable it for all `nl` and `nl_nodirect` tests.
Add Izhikevich neuron type

Lots of test failures, and notably the time to run the tests goes
way way up (120 seconds to 660 seconds on my machine).

It seems like the implementation works, but there are some weird
cases in which you get high firing rates unexpectedly, and I think
that is causing the decoding to be unreliable.
See the response_curves and tuning_curves tests as a start for
debugging this.

WIP
WIP