protocol: Harden binary.ReadUvarint error checking
engine: Quickly implement the PING command
protocol: Turn Conn into an interface, rather than a struct
engine: Command processing should be in a separate package