Refactor: The two SetNextRecording methods are identical, move to base class.
(cherry picked from commit d945642da6bd23c79a2d7c45e372751dc256f027)
Don't leak nextRecording or nextRingBuffer.

If a recorder was deleted after SetNextRecording has been called it
would leak a RecordingInfo and a RingBuffer. The RecordingInfo is
no big deal but the RingBuffer is holding an open file descriptor
and the application will start to misbehave if after we leak just
a few hundred of those since select() will no longer function
correctly.
(cherry picked from commit c1c09f7dfd1216d1124232d61867d3801c6e4a85)