Start of work on the Terminal Type option.
This brings the ability for an option to send a response to a
negotiation in a better manner - they return a better Response object
now and not a TelnetMessage. It also brings the ability for an Option to
handle the negotiation stages. It doesn't yet handle the fact that an
option might be active or not.