Add test for nengo.utils.tuning_curves().

Also fix nengo.utils.tuning_curves() for non-scalar ensembles.
Add tuning_curves_along_pref_direction().
Merge tuning_curves functions. Add more tests.

Changes in regard to the tests:

- Additional tests for LIF neurons (so far only direct mode neurons
  were tested).
- Use the Simulator function argument.
Easier plotting of tuning curves with dim > 2.
Implement meshgrid_nd function.

Numpy's meshgrid did not support more than two dimension before version
1.7 or ij-indexing.
Split tuning_curves again in two functions.
Add 1d tuning curve function for convenience.
Respect radius in tuning curve calculation.
test_ensemble now uses the plt fixture
Added tuning_curves notebook

This helped me understand how to use the tuning_curves
and response_curves functions. Guessing it will be useful
to others as well!
Removed tuning_curve_1d function

And just adding a bit of special-case code for 1D ensembles in
the tuning_curve function. I think this is nicer from the user
perspective, though the special casing for 1D makes the function
slightly less readable.

Also a few consistency fixes in utils.ensemble,
and a other random cleanup.