DO NOT MERGE: Ensure sslSelect is non-blocking

This was cherry-picked back from Honeycomb 41e32e5a6b091b2f8682f525bae47deb395be4b1

sslSelect had a comment explaining why its blocking read from a pipe
would never block. However, there is repeatable evidence to the
contrary. Attaching gdb to a process with SSLSocket blocked in both
read and write showed that the writer was waiting in sslSelect trying
to acquire the AppData::mutex while the reader was holding the mutex
and blocked in read(2).

This change makes the file descriptor of the pipe non-blocking.
Callers of sslSelect select already repeat their attempt to handshake,
read, or write as necessary when waking up from select, so now if the
code is woken up by the pipe, it continues regardless of the read
status.

Bug: 3332268
Change-Id: I75fb094e168d89a8e2752a6e12ee79f9adadc013
1 file changed