Fix setup.py not installing NumPy

It seems to install just fine if NumPy is in `setup_requires`
rather than `install_requires`. I'm not sure if NumPy should be
removed from `install_requires`, but I feel like best not to touch
it in case something reads `install_requires` but not `setup_requires`.

Tested on Mac OS X 10.10 and setuptools 2.2. Doesn't install NumPy
twice, but leaves an annoying `.egg` folder in the Nengo directory
(which can be removed with no ill-effects).
Added dists and utils to Nengo namespace

As per the will of #548.

- Moved nengo/utils/distributions.py -> nengo/dists.py, which
  required a bunch of changes in import statements
- Imported things in nengo/utils/__init__.py, and imported utils
  in nengo/__init__.py, which should remove the need for some
  import statements in model code
  - This necessitated changing some imports in utils from absolute
    to relative. Not sure if this is an improvement...
Changed SPA Vocab.text test to use regex

Previously, the values were hard-coded for the particular RNG used.
When changing to use the `rng` fixture, this broke, so I rewrote it
to use regular expressions instead of raw string matching.
This is a little bit less readable, but should be robust to
changes in the RNG.
Use `seed` and `rng` filter in all tests

At least, all tests that I could find with grep.

This caused a few tests to fail, which are also fixed in this commit.
- `spa/tests/test_memory.py` was checking a few specific values,
  which is brittle. Used the average of a few values,
  after plotting the test to see what it was doing.
- `spa/tests/test_pointer.py` used np.allclose when a greater than
  or less than test was more robust.
- `tests/test_solvers.py` had a failure for `LstsqNoise`. It's
  way worse than the others, in a few situations, so I used a
  looser tolerance for it and a stronger one for all other
  solvers.
Reduce use of nl, nl_nodirect in tests

As we add more neuron types, these uses get more expensive.
We want to keep the uses of nl and nl_nodirect to the basic tests
of ensembles, connections, learning rules, etc. and then use LIF
in the majority of cases (networks, for example) to keep our test
suite reasonably fast.

Some tests weren't actually using the `nl` fixture, we were
just running the tests multiple times for no reason!

Also reduced simulation times when we were testing for something
that had been stable for a good part of the simulation already.

And some minor cleanup (make tests shorter, make sure the generated
plots look decent).
Test all neuron types' tuning/response curves

These plots are quite useful when implementing new neuron types,
and these tests don't take long.
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
WIP: encoders need to be normalized!!