Join Session uv thread via SessionCloseFuture

fixes a thread resource leak if session objects are cycled.
Session close cleanup improvements

Make thread safe
Override timed wait
close_future_ no longer allowed to be null
Wait in SessionCloseFuture dtor
Don't reference count close future

Fixes a leak that occurred because the close_future dtor would be run from on_after_run,
causing the session thread to join itself.
Timed wait can't return is_set if it timedout
Merge pull request #50 from datastax/CPP-137

CPP-137 Cleanup Session Thread