Implemented remove_passthrough_nodes

This can be called by builders to make the model faster.
It removes Nodes with `output is None`.
Added labels to EnsembleArray
Added generate_dot for visualizing models

Also fixed removal of passthrough nodes
Documented and added tests
Change to absolute imports
Changed generate_dot to generate_graphviz
Moved utilities to 'utils' package

This allows us to make more little utility functions
but make them more explicit by grouping them in a similar way
as the top-level nengo directory is grouped.
The top-level stays uncluttered because there's just the addition
of one folder. Seems like a good compromise!
Broke up nengo.utils.helpers

- piecewise and whitenoise go to nengo.utils.functions
- tuning_curves and sorted_neurons go to nengo.utils.ensemble
Moved tests.helpers to utils.testing
Moved test files to appropriate packages

- Using the convention of numpy, scipy, etc. in which every
  package contains a `tests` subpackage with all the tests.
- py.test finds these test without a problem, but had to add a
  conftest.py in these subdirectories that imports
  `nengo.tests.conftest`.
- Merged `nengo/tests/README.md` with `README.md`.
Moved logging stuff to nengo/utils

- Also added some unit tests for it
- Fixed a bug where you would get multiple handlers if
  you called log multiple times