implement basic stream and tcp
implement Handle#close
add tcp spec
wrap all callbacks in rb_thread_call_with_gvl
Use rb_thread_call_without_gvl only when ruby/thread.h exists.

rb_thread_call_without_gvl is an internal function in ruby 1.9.2 and 1.9.3.
It's not supported by rubinius at all.