Set skip_files on each module's file watcher instead of globally in watcher_common

Summary:
Per @csilvers and my offline discussion, this change makes the file watchers'
skip_files awareness less hacky. Now when a module is instantiated or when it
detects a change in its skip_files, it sets the skip_files regular expression
as an instance variable on its file watcher. The file watcher then passes
skip_files as an optional argument to watcher_common.ignore_path().

I also fixed a bug in the ignored suffixes regular expression, fixed another
bug that was due to relative/absolute path confusion in the mtime file watcher,
and updated the ModuleConfiguration docstring to reflect the fact that we now
always reload when any yaml file changes.

Test Plan:
In watcher_common.ignore_path() I added logging statements to give a reason for
each ignored path. I then did the following for both the fsevents and mtime
file watchers:

- Touched content/models.py. Saw a reload due to content/models.py but
ignore messages for content/models.pyc and various .git/ files.

- Touched *.yaml, saw that none of them were ignored when triggering a reload.

- Added a new "- ^Foofile.*$" directive in app.yaml's skip_files section. Saw
that editing app.yaml triggered a reload. Touched Foofile and saw that it was
skipped. Removed the Foofile line from app.yaml, saw that that triggered a
reload again, touched Foofile again, and saw that it wasn't skipped anymore.

Reviewers: csilvers

Reviewed By: csilvers

Subscribers: csilvers

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