Fix llgs to shut down properly after kill packet.

See https://github.com/tfiala/lldb/issues/17

llgs was getting into a situation where the join thread for
forcing all inferior output to clear on reception of a 'k'
command was blocking on a join that would never end.  The
delegate handling of NativeProcessProtocol's exit state now
closes the inferior file descriptor terminal connection, if
one was established (currently only during attach).

This change also modifies GDBRemoteCommunicationServer::GetPacketAndSendResponse
so that it returns the GDBRemoteCommunication::PacketResult directly.
This allows (and requires) lldb-gdbserver and lldb-platform to handle
timeouts in a polling fashion so items like the lldb-gdbserver exit
from a process exit can cause a shutdown without having to wait
for more incoming packets from the client side.