Support for byte-stuffing
Removed the between function

between is now a method of the SequenceNumber class in protocol.py
Various debugging fixes

Various debugging fixes, the chief of which was that in send_frame we
were incr frame_expected’s copy when we needed to decr it.
Improved timeout handling

Added a Timeout class, to make it so we can see what sequence number
timed out, and also improved handling of ack_timeouts, to prevent the
possibility that multiple ack_timeouts might all get collapsed into one
ack_timeout