This class implements a ring buffer with "cursors" in the form of sequence numbers. To use this class, pass in a file descriptor and a ring size, the class will read data from the file descriptor and store it in the ring. If the ring becomes full, the oldest item will be overwritten. To emulate a stream interface, call read_data to grab the last sequence number and any buffered data, call read_data again, passing in the sequence number and all data newer than that sequence will be returned, along with a new sequence to read from.