Multi-key TLS and a couple of fixes/improvements

cc @trevnorris 
Wouldn't you want to set this in the constructor? Like so:
```diff
diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc
index 5d64351..bb6e7f1 100644
--- a/src/stream_wrap.cc
+++ b/src/stream_wrap.cc
@@ -63,7 +63,8 @@ StreamWrap::StreamWrap(Environment* env,
     : HandleWrap(env, object, reinterpret_cast<uv_handle_t*>(stream), provider),
       stream_(stream),
       default_callbacks_(this),
-      callbacks_(&default_callbacks_) {
+      callbacks_(&default_callbacks_),
+      callbacks_gc_(false) {
 }
```