Detect (global) inhibitory connections.
Modifications to allow for multiple `filtered_input_t` types to be used.

 - `initialise_input` now requires a pointer to a `filtered_input_t`
   - A callback is no longer registered by the initialiser: applications
     have access to the `input_mcpl_rx(filtered_input_buffer_t*, uint
key, uint payload)` function, but must implement and register their own
     handler.
 - `input_buffer_step` requires a pointer to the `filtered_input_t` to
   step
 - `filter`, `sdp-tx` and `ensemble` updated to account for these
   changes.
Rename files, refactor filtered_input into input_filter.

All '-' become '_' in filenames.
`filtered_input` has become `input_filter` and all functions are
prepended with this.
Add input filter banks.

Allow multiple instances of input_filters in an application.

TODO: Apply this to filters, sdp_tx and ensemble.
For ensemble this is useful for global inhibition, for filters and
sdp_tx it allows more than one Node/Ensemble to feed to component.
Merge branch 'master' into inhibition
Merge branch 'multi-inputs' into inhibition
flake8 on ensemble.
Provide global inhibition values to the SpiNNaker executable.

 - EnsembleVertex has reference to a inhibitory_edge
   - edge is registered by the builder - only one may exist
 - EnsembleVertex has new regions for filter data and routing data for
   the inhibitory connection
 - General filters will now check that the connection they represent do
   not correspond to a x -> Neurons connection.  Such connections are
   ignored when building the filter and filter routing entries.
Typo and logical error in builder fixed.
Provide number of inhibitory dimensions and their gain to the ensemble.
Ensemble accepts inhibitory connections.

 - Ensemble has inhibitory connection filter
   - MCPL handler tries normal input, if this fails tries inhibitory input
   - Update code filters both normal input and inhibitory input
 - Ensemble update code computes inhibitory value and includes in neuron current
   **doesn't account for neuron gain**.
 - Inhibitory data added to SYSTEM region and regions 8 and 9 for filter and routing.
Clean header slightly.
Include gains in inhibitory input calculations.
Merge branch 'master' into inhibition

Conflicts:
	nengo_spinnaker/ensemble_vertex.py
Add inhibitory edge to graph.
Merge in from master.
Nearer to working inhibition.
Nearer working inhibition.
Merge branch 'inhibition' into inhibition2

Conflicts:
	nengo_spinnaker/builder.py
	nengo_spinnaker/edges.py
	nengo_spinnaker/ensemble_vertex.py
	nengo_spinnaker/utils/filters.py
	spinnaker_components/Makefile
	spinnaker_components/value_sink/Makefile
	spinnaker_components/value_sink/value_sink.c
	spinnaker_components/value_sink/value_sink.h
Include example for inhibition.