This is a clean copy of libevent, vendored via moz.yaml. Update it with:

    ./mach vendor ipc/chromium/src/third_party/libevent/moz.yaml

That refreshes the upstream sources, preserves the Mozilla-maintained files listed below,
and re-applies patches/prevent-use-of-evsig.patch (an intentional crash that prevents use
of libevent's signal handling code; see bug 1616462). Only libevent's core event loop is
compiled into libxul; see the source list in ipc/chromium/src/third_party/moz.build.

The per-platform event2/event-config.h headers and evconfig-private.h are generated by hand,
are not part of the upstream tree, and are preserved across a re-vendor (the "keep" list in
moz.yaml):

- android/event2/event-config.h
- bsd/event2/event-config.h
- linux/event2/event-config.h
- mac/event2/event-config.h
- solaris/event2/event-config.h
- evconfig-private.h

For a routine version bump, update the EVENT__*VERSION macros in each of these headers to
match the new release, and fold in any EVENT__ macros that upstream added or removed.

When adding a new platform, or if an upstream config change affects these headers,
regenerate the base header by running "./configure" and "make" on the target platform
(event-config.h lands in include/event2/, evconfig-private.h in the root), then re-apply
the Mozilla customizations these headers carry:

- EVENT__SIZEOF_* are kept valid for both 32- and 64-bit builds using __LP64__ (Linux,
  Android, and BSD; Mac is 64-bit only). The CHECK_EVENT_SIZEOF assertions in
  message_pump_libevent.cc enforce this; a newly added constant needs a new assertion there.
- EVENT__HAVE_ARC4RANDOM and EVENT__HAVE_ARC4RANDOM_BUF in the Linux header are guarded
  rather than hardcoded (see bug 1782988).
