Fix memory/poll/timeout errors

Fixes #15 and supersedes #17. Frees leaked strings when determining the message filter key. Always closes old watch fd before re-watching (because node only allows one poll per fd at a time). Fixes memory corruption errors when attempting to free timeout and poll handles before node has cleaned up by delaying free until next turn of the default event loop. Valgrind now shows no errors.