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 in from master.

Cherry picked from b9c1e7f034197

Conflicts:
	nengo_spinnaker/ensemble_vertex.py
	nengo_spinnaker/simulator.py
Merge branch 'master' into multi-inputs

Conflicts:
	nengo_spinnaker/builder.py
	nengo_spinnaker/edges.py
	nengo_spinnaker/ensemble_vertex.py
	nengo_spinnaker/simulator.py
	nengo_spinnaker/utils/probes.py
	nengo_spinnaker/value_sink_vertex.py
	setup.py
	spinnaker_components/Makefile
	spinnaker_components/value_sink/Makefile
	spinnaker_components/value_sink/value_sink.c
	spinnaker_components/value_sink/value_sink.h
Merge pull request #92 from ctn-waterloo/multi-inputs

Multiple Inputs for a Executable