timeout option for Coolio::Loop#run_once

@repeatedly I implemented the timeout option for Coolio::Loop#run_once to solve the problem https://github.com/fluent/fluentd/pull/257

The implementation is basically porting from celluloid/nio4r. See https://github.com/celluloid/nio4r/blob/568263ba27dc4b2744f72781c8d4d0a19223caa0/ext/nio4r/nio4r.h#L16 and https://github.com/celluloid/nio4r/blob/568263ba27dc4b2744f72781c8d4d0a19223caa0/ext/nio4r/selector.c#L310-L372

I also added `spec/tcp_server_spec.rb` for the test of timeout option. 

NOTE: This is still WIP status because I will try this code on my production environment on next Monday, but could you review this beforehand?