Get rid of some memory holes on x86_64
Optimize and simplify the epoll poller

On my own machine (4096 max FD's), scanning localhost for all services,
there was no change to speak of.  On another one, though, with 65536
max FD's scanning localhost and another machine simultaneously for
a specific service, there was a dramatic speedup allowing much faster
scans, with userspace load dropping to about a quarter of a second.

As a bonus, it makes the code simpler.