Restore the FSEvents-based file watcher.

Summary:
In this change I did the following:

1. Restored fsevents_file_watcher.py from the last upstream revision before it was deleted
2. Brought it up-to-date with the latest upstream revision of the SDK
3. Added the logging that I added for the other file watchers in D9084
4. Integrated it with watcher_common.ignore_file()

I did not integrate it with watcher_common._IGNORED_DIRS because, as it turns
out, none of the other file watchers respect that at all. Our plan is to
introduce new ignoring logic that respects app.yaml's skip_files directives and
works across all file watchers, so this is just an intermediate situation.

Test Plan:
1. Removed pyobjc-framework-FSEvents from my system, started dev_appserver.py, saw the warning that I needed to install the package
2. Started dev_appserver.py, touched/created/removed some files and directories, saw the appropriate logging messages
3. Started dev_appserver.py, touched a .pyc file, saw that it correctly ignored that change because .pyc is listed in watcher_common._IGNORED_FILE_SUFFIXES

Reviewers: csilvers

Reviewed By: csilvers

Differential Revision: http://phabricator.khanacademy.org/D9088