Fix disconnection
Fix disconnection

The previous change broke manual disconnection because |port| was reset
before we had a chance to call close(). This would leave the port open
and cause a subsequent connect to fail.

|port| is now used in place of |closing| and there are separate paths
for manual disconnect and handling when the device is lost.

GoogleChromeLabs/serial-terminal,GoogleChromeLabs/serial-terminal,GoogleChromeLabs/telnet-client,GoogleChromeLabs/telnet-client,GoogleChromeLabs/serial-terminal,GoogleChromeLabs/telnet-client