handles client disconnection

clients are now mapped within a stream by their respective net.Conn,
when the stream listener detects a disconnect the client is removed from
the map preventing any further communication.