This changes adds a set of IPC routines for Linux to send and receive various types of data, including byte buffers, strings, integral types, and shared memory. It is almost completely protocol-agnostic, and may be used to create simple protocols as sequences of messages.
The added functionality is orthogonal to what already exists in libFuzzer, and attempts to avoid introducing new dependencies. As a result, this change is rather large.
This is change 17 of (at least) 20 for cross-process fuzzing support.