Python 3.4 support

- Python 3.4 now tested when running tox
- Travis-CI testing for 3.4 will be enabled when available
Maintain hierarchy in api, enforce with

 - Model (now Network) is recursively structured.
 - 'with' is required.
 - Fixed a test which occassionally failed due to floating point
   comparisons
 - NengoObject base class for simplifying __hash__, __str__, etc...
 - A bit of general cleanup with string quotes and specifiers
Improved test_builder
Faster method for testing notebook examples

Instead of starting up an IPython kernel and executing cells,
we just convert the whole notebook to a Python script
and exec it.

Other minor changes:
- Moved some things in test_examples to utils.ipython
  - Should now be easy to generate Python scripts for docs
- Changed requirements-test, as pyzmq is no longer necessary
  (but jinja2 and pygments are)
Moved execfile to nengo.utils.compat

- Also made the implementation a bit safer
Fixed accidental use of global logger.

- Fixes #214
Forced nodes to return vector output

- fixes #304
Added test for scalar node output

- Based on the example in issue #304
Removed `_in_stack` since it was slow.
Fix Python 2.6 support

The latest version of IPython, 2.0.0, dropped Python 2.6 support.
We fix this by splitting up the test requirements into the usual
requirements-test.txt, and requirements-test-py26.txt,
which is Python 2.6 specific. Both .travis.yml and tox.ini
are updated to use this new file.

Other changes:
- Removed apt-get install libzmq in .travis.yml
  since we don't use it anymore.
Added utils.graph which simulator uses

All we ever used networkx for was topographical sort.
This commit adds an implementation of topographical sort
to utils.graphs, which nengo.Simulator uses instead of networkx.

Other changes:
- Moved _init_dg to utils.simulator as operator_dependency_graph
- Refactored operator_dependency_graph slightly
- Implemented unit tests for utils.graphs
Accessor.__str__ uses StringIO.write

- Previous print_function implementation didn't work
- Added StringIO to utils.compat
- Added a small unit tests to make sure str(sim.signals) works
Merged SignalDict and Accessor

Since we don't deepcopy anymore, there wasn't much of a need to
separate the _sigdict from the accessor returned by the signals
property. So, now they're the same thing.

Other changes:
- Removed old sim.signals test
- Added tests for SignalDict
- Switched from "name" to "key" in SignalDict
- Got rid of `getattr` in `init_signals` because all signals
  have a value attribute
Made shape array 'int' to suppress warning
Updated spa to use latest syntax

I had some rebase weirdnesses in the original spa branch, so I started
this one fresh.
Removed name from syntax

Making things more object-based
Added complex spa test example
Updated spa to use latest syntax

I had some rebase weirdnesses in the original spa branch, so I started
this one fresh.
Removed name from syntax

Making things more object-based
Added complex spa test example