Implement handling a change in dt between runs for the C++ SpikeQueue.
Add a `spike_queue` method to `Device`, returning a `SpikeQueue`. In the `RuntimeDevice`, this method returns the C++ version when it is available and uses the Python version otherwise.
Improve the performance of the `spikes` property a bit.
Return numpy arrays (not lists) from `SpikeQueue.peek`, this is expected by the numpy code