[Broken] Refactor to provide interface for IOBuilder

 * IOBuilders now contain a reference to the Builder
 * Some docstring neatening
 * flake8, some corrected imports
Renamed `io` to `node_builders` to better explain purpose.
Changes to keep inline with upstream Nengo.

 - `filter` => `synapse`
 - Deal with decoder solvers returning tuples
Fully specify Node builder functionality.

 - Provide communication handlers for Nodes (both Ethernet and SpiNNlink/USB)
 - Necessary changes to `collections` and `rx_vertex`

TODO:
 - Refactor Tx and Rx vertex to become subclasses of something like `PackedNodeVertex`
   to reduce levels of indirection.
Bring `Simulator` in-line with earlier commits.

 - Remove serial I/O functionality (moved to relevant Communicator class)
 - Create an Ethernet connection by default
 - Added `NodeSimulator` to periodically simulate Nodes
 - Functionality to instatiate IO, Node Simulators and Simulate!
Simple Node->Ensemble->Node example to illustrate and test IO