Use common code for LIF rate computation.

`_LIFBase.rates` and `LIFRate.step_math` were using different code
to do the same rate computation. This commit has them share code,
uses faster code for the `rates` function, and gets rid of the
`_LIFBase` class completely to simplify things.
Unitary semantic pointers can be built again

- Made the unitary function return a copy of the vector instead
  of just the .real view.
Modified AssocMem test to use absolute times.

- This makes it less fragile if we change the way we do times.
Update sim time at beginning of step.

- This means the time nodes get is the same as the `trange` time for
  the corresponding probed values, and makes timing more consistent.
- Addresses issues discussed in #234.
Added probe label attribute.

- Also updated the probe string representations.
Fixed trange and probe length mismatch.

- The length of a probe is always the same as the length of trange.
- Fixes #497.
Fixed probing for certain sampling rates.

- Was broken for sampling rates which were not multiples of the
  simulator `dt`.
- Merged `test_sampling_rates` with `test_dts`, since `test_dts`
  now covers all cases.
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.
Determine error estimate when building connections
Only estimate distortion instead of complete error