Use separate structures for enqueueing events and delivering them
Add message queue events
Merge branch 'master' into ipc-data-events
Add endpoint queue events
Add ipc_lockwrap()
Listening flag now only affects emission; ipc_wait() can return emitted events even if not listening
ipc_wait(): do not `continue` after missing event; check again without waiting on condvar
Add stream events (ugh!)
Merge branch 'master' into ipc-data-events
Add an ack flag for closure events
Add an ack flag to incoming-connection IPC events
When destroying IPC endpoint, remove all related events from event queue