Removed EnsembleNeuronTypeParam.

This was only necessary when we wanted to probe neuron stuff on the
ensemble. Now that we use the neurons object, this was unnecessary.
Added more validation to Connections

-no connections to Direct neurons (Issue #463)
-no functions on passthrough nodes (Issue #428/#485)
Remove networkx dependency in setup.py

And bump up the numpy version to 1.6.
Force setuptools

If we can be assured that we're using setuptools,
we can make setup.py a lot more effective. This should be possible,
as the ez_setup.py script (now included) should be able to download
and install setuptools on all OSes.

A few nice things if we can rely on setuptools
- simpler setup.py
- use find_packages function instead of having to edit setup.py
  when we add a new package
- extras_require for a one-command install of Nengo and extras
Better testing in setup.py

Now:
- `python setup.py test` launches py.test,
  which is usually what people want.
- tox is still accessible with `python setup.py tox`
- Both can have command-line arguments passed in using the -a switch
  (or the long --pytest-args or --tox-args switches);
  e.g., `python setup.py test -a "-n 4"` is equivalent to
  `py.test -n 4` and `python setup.py tox -a "-epy34 -- -n 4"`
  is equivalent to `tox -epy34 -- -n 4`
Removed makefiles in docs

The preferred ways to build documentation are

1. python setup.py build_sphinx, or just ./setup.py build_sphinx
   (See python setup.py build_sphinx --help for options)
2. Invoke sphinx-build directly; e.g., sphinx-build docs html
   (See sphinx-build --help for options)
Use semantic versioning.

See the nengo/version.py docstring for more details.
Simplified requirements files

Setuptools allows extra_requires with `req[extra]` syntax.
Also, matplotlib 1.4 has an improved setup.py that can
handle being installed simultaneously with numpy,
so no need to install from git anymore!
Fix circular convolution radius
Added test of magnitude control
Fixed up some test plots.

- Fixes #345.
Python 2.6 fixes

1. Counter was introduced into `collections` in Python 2.7,
   so on 2.6 we rely on the backport in PyPI.
2. captureWarnings was introduced into `logging` in Python 2.7,
   so we just don't do this in Python 2.6.
Added plt fixture for easier test plotting

Rather than creating at Plotter object manually,
this commit makes it possible to add a `plt` argument
to a test function, which is `matplotlib.pyplot` if
plotting is enabled, and a mock object if plotting isn't
enabled. It figures out a reasonable filename from the
arguments to the testing function.

Additionally, the Plotter now automatically saves the
current figure and closes all open figures in
__exit__. If the automatically generated name is not
sufficient, it can overridden by setting `plt.savesas`
to a string. If saving the plot isn't desired, saving
can be suppressed by setting `plt.saveas = None`.

Test cases that plotted have all been changed to use
this new interface. There's a heck of a lot less boilerplate
now, which should make it easier to add in quick plots to
unit tests.
Travis-CI supports Python 3.4 now
Fix TravisCI matplotlib backend problem

It tried to use TkAgg by default, which fails in their environment.
Fixed by dropping a `matplotlibrc` in the current directory before
testing starts -- this keeps the fix local to TravisCI and doesn't
affect any other test running.
Mark spa/test_thalamus as optional

It's causing TravisCI to time out.
Fixed erroneous uses of `nengo.Simulator` in tests.

- Should always use `Simulator` or `RefSimulator` pytest args.
Fixed circular convolution routing
Cleaning up some tests.

- Revised the `allclose` function to be more easily useable.
- Relaxed tolerances in some tests for Nengo OCL, since it is
  using 32-bit floats.
- Made some tests in `test_ensemble` shorter, for Nengo OCL.
`test_shortfilter` now tests what it purports to.

It said it tested connection filters less than `dt`, but didn't
actually do this.