Process timer optimization: do not cancel timer on message reception but
leave it running.  If it expires, it's a no-op.  If a new timer is set,
and is within "slop" (10ms) of the existing timer, just let the existing
timer run.  If outside the slop window, reset the timer (one lock
taken rather than two for a cancel/set pair).
Revert "Process timer optimization: do not cancel timer on message reception but leave it running.  If it expires, it's a no-op.  If a new timer is set, and is within "slop" (10ms) of the existing timer, just let the existing timer run.  If outside the slop window, reset the timer (one lock taken rather than two for a cancel/set pair)."

This reverts commit 54de4483fdae649dc4650aa51ab15e0a940ee0f7.
Add support for multiple timer wheel instances (default to one per
scheduler).
Use closefrom(2), when available, in child_setup.
Revert dispatched async_dirty.  Bypasses logging incorrectly.
Add kernel config options for
 dist_sndbuf, dist_recbuf, dist_buffer, dist_low_watermark,
dist_high_watermark.
Add multiple mnesia_tm procs to handle async_dirty writes.
Receive and queue table events while loading ets table to avoid
scalability problems with selective receive.