Initial attempt at using epoll instead of select. Fixes #3

The approach taken here is inefficient but is a proof of concept
that epoll works. It creates an epoll file descriptor on each
attempt to 'select'. A future improvement would be to use a
single epoll file descriptor and use epoll_ctl to add/modify/remove
watched file descriptors.