Initial work on reorganising ensemble-input.

 * Added structs in place of various global variables
 * Provided initial support for multiple filters

TODO:
 [] Modify main and data functions to read in appropriate values
 [] Change EnsembleVertex to generate appropriate filter parameters
Load parameters for filters from system region.

TODO:
 [] Modify EnsembleVertex to provide appropriate inputs
Bugfix: n_filters, n_filters_keys are uints.
Structure for adding multiple filters to Ensembles.
Merge in changes from master.
Merge branch 'nengo_spinnaker-refactor' into nengo_spinnaker-refactor-multi-filters

Conflicts:
	nengo_spinnaker/ensemble_vertex.py
	spinnaker_components/ensemble/ensemble-data.h
Write routing info for multi filters.
Minor correction to filter_tcs.
Correction to size computation of filter keys region.
Add edge to filters upon creation rather than during data spec generation.
Correct determination of filter component lengths.
Merge branch 'master' into nengo_spinnaker-refactor-multi-filters

Conflicts:
	nengo_spinnaker/ensemble_vertex.py
Merge branch 'master' into nengo_spinnaker-refactor-multi-filters
Merge branch 'master' into nengo_spinnaker-refactor-multi-filters

Including work on masking input accumulators.

Conflicts:
	nengo_spinnaker/ensemble_vertex.py
	spinnaker_components/ensemble/ensemble-data.h
	spinnaker_components/ensemble/ensemble-input.c
Correction to ensure that buffer accumulation accounts for reset/lack of reset.
Generate the inverse mask.
Hack/heuristic to avoid calculating the number of keys required for input filters.
Generate the accumulator mask based on the features of the filter.
Allow for accumulatory and non-accumulatory edges.
Added setter in constructor