update connection multiplexing code to use epoll when available, fall back to select when not available

The current implementation is limited by the max number of FDs supported by select (really the max fileno). On most systems this is 1024. The updated implementation in the PR will use epoll where supported, giving better performance when multiplexing lots of connections, and supporting more connections. While I'm generally not multiplexing 1000 connections to gearman, I have noticed on production systems where connections are being opened and closed frequently, it's easy to have fileno's > 1024, making this library unusable in a lot of cases.

The polling code falls back to select when epoll is not available (non linux). A kqueue implementation may be beneficial for those using BSD, but I'll leave this to someone else for now.