Minor cleanup in nengo.utils
Add test for nengo.utils.tuning_curves().
Add tuning_curves_along_pref_direction().
Implement meshgrid_nd function.

Numpy's meshgrid did not support more than two dimensions
or ij-indexing before version 1.7.
Refactor tuning_curves functions, add tests

- Renamed tuning_curves_along_pref_direction to response_curves
- Made tuning_curves and response_curves more robust
- Added tests for LIF neurons (so far only direct mode neurons
  were tested).
- Easier plotting of tuning curves with dim >= 2 in tests.
Respect radius in tuning curve calculation.
Change eval_points shape in tuning_curves

This makes it possible to unpack the result of `tuning_curves`
to plt.plot in the 1D case. The 2D case is only a little less clean.
Added tuning_curves notebook

Shows the common use cases of tuning_curves and response_curves.
Removed extra filters on network inputs

Specifically:
- integrator
- oscillator
- workingmemory gate and reset
Choice distribution now works with earlier Numpy

Fixes #536
Can now delete params from a config object.
Rewrite associative memory tests

These are similar to the prior tests, but much clean up.
A few significant changes:

- Run simulations for as little time as possible
- Better testing for similarity between probe data and pointers
  (see `similarity`; this could be made more sophisticated and
  moved to `nengo.utils.testing` when fixing #512)
- Added plotting to all tests that simulate
- Simplified winner-take-all test (previously was same as complex test)
Config defaults are now validated

This caused several test cases to fail, which are also fixed.
Usually, this occurred when a network default was set to something
that relied on a parameter that wasn't set; for example,
it is now an error to set a network's default encoders to be a
NumPy array, because the `n_neurons` of each ensemble is not known.
In these cases, changing the value to a distribution instead fixed
it, and is a better thing to do anyhow.

There was also a case in the SPA associative memory that the
Uniform distribution was being sampled and passed in. The sampled
value wasn't used anywhere else, so I just passed in the distribution
instead. This also solves a subtle bug that those distribution
samplings weren't seeded; passing in the distribution ensures that
they will be seeded.
Scale spikes by `dt`.

- Fixes #510.
- PES is now invariant to choice of `dt`.
- TODO: BCM and Oja are not fully invariant to `dt`.