implement telnet negotiation debug wrapper !

also document telnet option attributes
refactor addr_tup and magic index [0] and [1]

also refactor obscurely named BogConnectionLost to Disconnected
refactor BogConnectionLost, socket_send, _recv

notable is:
* support for 'bandwidth exceed' errors, that otherwise would crash the connection. I first noticed this when I connected to a miniboa telnet server using a linux telnet client with a 9600bps serial line.
* only call socket_send if data available to send; previously an empty
  bytestring ('') would be continiously sent to each client sock.send().
  We now test the externally exposed .send_read() method prior.

additional refactor: check_local_option and check_remote_option is currently
the only available exposure to checking telnet client's capabilities, which
may be needed outside of the class; removed _ to make them public.
refactor BogConnectionLost, socket_send, _recv

notable is: * support for 'bandwidth exceed' errors, that otherwise would crash the connection. I first noticed this when I connected to a miniboa telnet server using a linux telnet client with a 9600bps serial line.
* only call socket_send if data available to send; previously an empty
  bytestring ('') would be continiously sent to each client sock.send().
  We now test the externally exposed .send_read() method prior.

additional refactor: check_local_option and check_remote_option is currently
the only available exposure to checking telnet client's capabilities, which
may be needed outside of the class; removed _ to make them public.