Modify VoiceRecorder to be able to properly abort a recording.

Previously huge amounts of silence were written in one step.
For long multi-channel recordings a joining user might cause
hours of silence to be written to disk before the user regained
the ability to abort a recording.

Now the recorder will only write up to 1s of silence per iteration.
If more silence has to be written the corresponding RecordBuffer
is re-queued for a later iteration enabling a timely abort.

This channel also includes some small refactoring for increasing
the readability of the recorder and to remove some warnings.
small fix