Output generator, regions and vertices.

Incomplete.

Initial work required for migration to the new set of SpiNNaker tools.
Tests mostly completed for output generator, completed for regions
(all current types) and incomplete for vertices (themselves incomplete).

The output generator code is reponsible for generating files to write
to memory for regions in subvertices, and generating the app_ptr table
to go with these.
Neaten MatrixRegions.

Allow size calculation for regions that do not have
a specified matrix.
Add vertex resource calculations.
Provide NengoPlacedVertex in vertices instead of Subvertex.
Vertices return subregions for slice and index.

`NengoVertex` objects have the function `get_subregions` which returns
a list of subregions for a given slice of the vertex and a subvertex
index.
NengoPlacedVertex contains Placement information.
KeyRegion type.

Represents an array of keys.  Also some minor modifications to
the base Region class.
Allow customisation of `KeyRegion`

Allows specification of additional fields in the output which are
to be filled with functions expected a keyspace and a subvertex index.
flake8
Neaten KeyRegion class.
Migrate `keyspaces` to `spinnaker` package.

Update tests to correct for changes in API.
Support PACMAN partitioning.

TODO (?) request that the PACMAN partitioners assume they have
sensible objects passed as parameters rather than requiring they
be subclasses of AbstractConstrainedVertex?
Fixes for decoder utilities tests.
Fixes for nodes utilities tests.
Remove vertex utilities.
Remove outdated connections utilities.
Remove outdated probes utilities.
Changes to utils __init__ files.
Additional test for matrix region.
Neaten regions.

`n_atoms` and `full_length` are only provided for `MatrixRegion`s.
`KeyRegion` gains the ability to prepend the number of entries it
contains.