avoid double free to fix issue #9.

no need to free private data when time out.
because the destructor frees all private data.
avoid double free if wait_for_event returns WAIT_FOR_EVENT_EXCEPTION
retry wait_for_event when recieved iterrupt
Merge pull request #12 from shogo82148/fix-issue-9-avoid-double-free

avoid double free and fix signal handling