Finer grained object replacements in trees.

Allow replacement of objects only when they start or terminate
connections.
Adds some corrections to other tests.
WIP Initial rewrite of ethernet IO code.

 - Redefines some of the API for IO builders
 - Creates new SDPRx/Tx elements

TODO:
 - Build a map between placement and node output
 - Provide the API for setting node output and retrieving node input
 - Provide threading

LONGER TERM:
 - Provide slicing on the Tx element
 - Use the new SpiNNaker IO packet formats for SDP?  I'm not sure this
   gets us anything other than more overhead, the packet convention here
   is sufficiently simple for others to implement...
WIP Ethernet build.
Initial work on simulator.
Start using numpydoc.
WIP Simulator rebuild.
Merge branch 'new_pacman2' into new_pacman2_simulator
Allow `None` in vertex regions.

- Corrections to calculation of DTCM and SDRAM usage to allow for
  blank regions (indicated with `None`)
Add static DTCM and CPU usage to LIF vertex.
Use Pacman Slice object.

Subject to changes made in SpiNNakerManchester/PACMAN#12
Simulator implementation state.