Internal: driver_fdset uses blocked fd allocation.

This means that a driver_fd<T> is never moved to a different location
in memory.
Each driver object has a unique index.

And one can look up drivers by index.

There can be at most driver::capacity drivers at a time.

The purpose is to be able to find a driver object using only a few bits.
Simplify at_trigger handling.

* Use driver indexes to combine driver index + fd number into a single
  callback argument. That way at_trigger callbacks need only the one
  argument, which combines a driver reference and an fd reference.

* This lets us remove simple_event::at_trigger_arg2_.

* Use a "trigger_hook" function to simplify the interaction between
  function at_triggers and event at_triggers.
New test: 1000 file descriptors in pipes.

Testing more fds than fit in a block.
The simple_event structure always contains annotation file and line.

Although only when TAMER_DEBUG is defined do we actually set these
values.

One reason: concern for binary compatibility; don't want different
TAMER_DEBUG settings to change the size of structures.
Ugh: Correct preevent problem; we called the wrong overloads.
ex4: Avoid leak of active event even with preevents.
Change how active event leaks are reported.

Report the file and line of the location the event was CREATED,
not the location of the block point (which is often unset).

Simultaneously get rid of the tamer_debug_closure hack; it is really
not clear that blocking locations are meaningful on their own; if
required, one could simply look at the file and line annotations of
one or more of the associated events.
Revert "tamer/autoconf.h is no longer auto generated."

This reverts commit 6cdc925e01020ad9aa5592d65dfa927bc22da2b0.
Event tracing overhaul.

Event tracing is on by default.
Preevents use event tracing.
Use --disable-tracing to turn off event tracing.