Add shovel script for benchmarking the consumer
Remove logger.debug in dense read loop
Remove logger.debug in read call
Reduce scope of socket lock acquisition
Reduce references to self._buffer in connection.read, track total and remaining bytes
Change the order of ifs in Response.from_raw to favor Message types
Import frame-type constants directly
Import Response, Message at the top level
Use a deque for pending messages
Reorder branches in Connection.flush
Avoid eagerly flushing.
Prefer sending fewer large messages on the socket
Fix the pending message glomming
Version bump