Use StopListening as a return result

Note that this doesn't implement StopListening yet — the returned actions do
nothing.

I also haven't checked yet that the Win32 and OS X code paths compile.
gitignore cabal-sandbox
Don't redefine void
Simplify WatchManager by using an existential type
Use async

This solves problems like exception handling, termination of the forked thread
etc.
Move code around
Simplify readEvents. See #43
Cleanup the threadChan thread
New test suite
Don't link the event reader thread
Make returned paths absolute on Windows
StopListening for Polling
StopListening for Linux
StopListening for Windows
Test suite: stop listening
Test suite: increase the interval
Test suite: refactor

Split some test definitions into a separate module, EventUtils
Test suite: two more tests
Generate tests
Mac OS X: remove tracing