Refactored Input/Output with host based Simulator

~~... and a fruit reduction.~~

* Refactored Input/Output
* Host-based simulator for Nodes, Node->Node connections (with transforms and filtering)
* Examples corrected to use new syntax, and `synapse` over `filter`
* Refactored SDP Rx/Tx C applications
* Some neatening of directory structure (`collections.py` now in `utils/bins.py`)
* Run applications for a specified amount of time, then leave the board in a clean state
* Check `spin1_malloc` returns for `NULL` :wink: 

*This PR doesn't fix the split-Ensemble bug, but that is fixed in the `refactor-vertices` branch which will be merged in soon.*

@tcstewar You will need to test the serial interface as I don't seem to be getting anything meaningful from the USB port :worried:

*To do in later PRs* -- I'd like to get this pulled in first:
 - [ ] Refactor vertex code to reduce duplication
 - [x] Modify location of binaries with a view to distribution with the package `pip install nengo_spinnaker`
 - Documentation, documentation, documentation