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.
Add requirements.txt, modify docs conf accordingly.

Pull in Nengo using Git, modify when a Pip release is made.
Correction to requirements.txt
Update requirements.txt
Update requirements.txt
Update requirements.txt

Include bitarray.
flake8 and documentation for simulator.
Further documentation on Nodes.
Include images in doc.
Bugfix to decoder equivalency check.
Fixes to SpiNNlinkUSB, FilterVertex.
Filters default to zero if the time constant is None.
Merge branch 'master' into inhibition
Merge branch 'multi-inputs' into inhibition