Refactored select loop into EventLoop module

Greatly simplifies code and hopefully speeds up multi-service select loop
because we're not copying the descriptors array over and over again.