nacl_io: Add SOCK_DGRAM support to socketpair()

Change UnixEventEmitter to use a generic FIFOInterface instead of
FIFOChar specifically.  Add bytewise Read() and Write() methods to
the former interface so that subclasses can handle both stream and
datagram based communication.  For SOCK_DGRAM, use the FIFOPacket
class as the backend instead of FIFOChar.

BUG=584925
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_nacl_sdk;tryserver.chromium.mac:mac_nacl_sdk;tryserver.chromium.win:win_nacl_sdk

Review URL: https://codereview.chromium.org/1679643002

Cr-Commit-Position: refs/heads/master@{#374248}
10 files changed