Merge Python 3 compatibility from upstream. Cosmetic changes.
Cosmetic changes
libuv-inspired FSEvents watcher. Should be more robust when watching multiple paths.

Changes the existing API.