Add LIST_ delaration to event_struct.h to supplment TAILQ_

Generally, LIST_ can be a little faster than TAILQ_ for most
operations.  We only need to use TAILQ_ when we care about traversing
lists from tail-to-head, or we need to be able to add items to the end
of the list.
Use LIST rather than TAILQ for evmap_io and evmap_signal

These structures used TAILQ for the lists of events waiting on a
single fd or signal.  But order doesn't matter for these lists; only
the order of the active events lists actually matters.
Use LIST rather than TAILQ for evbuffer callbacks

There's no reason to traverse these out-of-order, and we never defined
the order that you'd get your callbacks on an evbuffer if you happened
to add more than one.
Use LIST rather than TAILQ for bufferevent_rate_limit_group members

Once again, there's no reason to keep these lists in the order we were
keeping them in.  Every time we needed to traverse them for any important
purpose, we started at a random point anyway.
Add event_enable_debug_logging() to control use of debug logs

Previously, debug logs were turned on if you built with -DUSE_DEBUG
and off otherwise.  This make builds with -DUSE_DEBUG hideously slow
and other builds unable to get debug logs.

This is based off a patch by Ralph Castain from October.  It tries a
little harder to avoid needless function calls, it doesn't require
stdbool, and makes the controlling parameter a mask rather than a
boolean so that we can later support enabling only the debugging
messages for the parts of Libevent you're trying to debug.
Add AC_USE_SYSTEM_EXTENSIONS to configure.in.
Requires follow on patches for correctness and robustness.
Filter '# define' statements from autoconf and generate event-private.h
Add event-private.h to noinst_HEADERS
Remove internal usage of _GNU_SOURCE
Eliminate a couple more manual internal _GNU_SOURCE defines
Fix evport handling of POLLHUP and POLLERR

In other backends, they make _all_ events trigger; with evport they
previously triggered nothing.  Found by Phua Keat Yee.
Fix compilation on Windows with NDEBUG

Dongsheng Song reports that when building on windows with NDEBUG, you
run into an attempt to do EVUTIL_ASSERT(x) where x is a bitfield,
which turns into _EVUTIL_NIL_CONDITION(x), which takes sizeof(x),
which is illegal.  This patch fixes _EVUTIL_NIL_CONDITION to work on
bitfields too.
Merge remote branch 'origin/patches-2.0'
Add AC_GNU_SOURCE to the fallback case.
evconfig-private.h with recusive configure subdirs
Revert "evconfig-private.h with recusive configure subdirs"

This reverts commit ed53d5ef8053af08186ef80dfc1647cff769fac8.
Use a Configuration Header Template for evconfig-private.h
Remove event-private.h and switch to evconfig-private.h
Fix a comment warning and add evconfig-private.h to .gitignore
Include evconfig-private.h in internal files for great good.