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