Support for other event notification strategies

This allows us to overwrite one method for us to use some other more reactive/performant way to wait on sockets like kqueue or framework-specific (a la celluloid, see this rejected pull request: https://github.com/celluloid/celluloid-io/pull/41 ).