This is a clean copy of libevent-2.0.21-stable with the following
modifications.

1. Add the following files:

- linux/event2/event-config.h
- mac/event2/event-config.h
- bsd/event2/event-config.h
- android/event2/event-config.h

These files are taken from libevent-2.0.21-stable built on the development
environment indicated by the first path component. You have to run
"./configure" and "make" to get all of the pre-processing done. The file can
then be found in "include/event2/".

You then need to modify the _EVENT_SIZEOF_* constants in the generated linux,
mac and bsd headers to be appropriate for both 32-bit and 64-bit platforms. Use
__LP64__ to distinguish the two cases. If you get something wrong the
CHECK_EVENT_SIZEOF static assertions in message_pump_libevent.cc will fail.

2. This is ugly, prepare yourself. OS X has a weird problem with how the
"TAILQ_END(head)" is used, causing a linking error. Just replace all use of the
"TAILQ_END(head)" macro with "NULL".

3. Apply the following patches from
ipc/chromium/src/third_party/libevent/patches/:

- "mac-arc4random-buf.patch". This removes some bad OS X compatibility code.
  This will allow libevent to compile on all supported versions of OS X.

- "openbsd-no-arc4random_addrandom.patch". This fixes the build on OpenBSD
  (which doesn't provide arc4random_addrandom anymore, see #931354).

- "use-non-deprecated-syscalls.patch". This fixes the build on AArch64
  architecture (which does not provide deprecated syscalls).

- "dont-use-issetugid-on-android.patch". This fixes the build on Android L
  preview.

- "avoid-empty-sighandler.patch". This fixes some OS X crashes.
