Add a Communication::WriteAll() that resumes Write() if the initial call
did not write all data. Use it in GDBRemoteCommunication when sending
packets in order to fix handling partial writes (i.e. just resume/retry
them rather than erring out). This fixes LLDB failures when writing
large packets to a pty.
The solution used utilizes a short sleep in order to wait for the write
buffer to be freed. Using select() would be better but it would require
much deeper changes to the code and does not seem justified at the time.
It might be worthwhile to emphasize that this will happily return after a partial write and point the reader to WriteAll if he wants to write everything.