Backend for new nengo API

Implemented most of the backend functionality for new nengo API.
Renamed some things for the sake of sanity, ie. 'watchers' are now
obsolete, also 'simulator', is now 'sim_manager'.  Also renamed
some things for consistency with the new API ie. 'tick', is now 'step'

The new backend interface works slightly differently than the old.
To connect to a node in order to get data from it, simply give it a
function that will be called each time there is more data with a view
on a numpy array containing all currently available data (and history),
and the simulated time for the value at the start of that array.  You can
see an example in sim_manager_tests.py

Also note that we now modify the model for visualization, so we'll want
to make a copy of it, or somehow hide the observer nodes for visualization

Tests still need to be written for it, and docs fleshed out a little...