lib/base/message.h: Use eventfd instead of a pipe

An eventfd uses much less resources than a pipe. A pipe allocates a
~64k buffer and two filehandles. An eventfd is only an uint64 in the
kernel.