As initialized in #457, the current handling of waveforms within the Neo framework is non ideal due to multiple reasons - unintuitive dimensionality in comparison to `AnalogSignal`s - bad performance for large datasets / no lazy option here Suggested changes are: - Detach the representation of waveforms from `Spiketrain`s and represent these as separate, more performance oriented object. - Use the `array_annotation` mechansims for waveform handling. Potentially there is also a lazy handling of numpy arrays possible here? - More ideas?