drop support for unicode paths in inotify.

must allow users to pass byte strings as functions like
os.path.isdir does not handle unicode on posix systems
tests: Fix failing unittest test_watchdog_observers_polling.TestPollingEmitter

There was both a FileDeletedEvent and a DirDeletedEvent for the entry, just
keep the latter. Also add missing to_file entry.

This makes the test work on OS X (tested on 10.8.3) and Linux (tested on Ubuntu 12.10)
tests: Fix test to work on Windows

On Windows the absolute_path() call made the path look like
c:\\foobar instead of /foobar which made the repr() test fail.
tests: Fix polling test moves to work in Windows

Like explained in the observers.polling code, on Windows we do not get moves with the polling observer, change tests to take that into account.
dont fire move events for tree or watch sub-directories unless set to recursive. fixes #73
cosmetics
key (used for equality) in move event was never overriding. fixes #130
read_directory_changes: On directory create check if it may have been a move

On Windows if a folder is moved from outside the watched folder to inside it,
we only get a Directory Create from ReadDirectoryChangesW, no events for the directory's
children. Err on the side of caution and call them CreatedFile and DirEvents since we
can't be absolutely sure they came as the result of a move.
inotify: dir/tree might be gone when we try to add a watch for it