Split the __build__.py into 2 parts: __build.py & __watch.py

The __watch.py file contains the pyinotify code to track changes in
the specified directory. It also contains the debouncer code that can
be applied to the handler functions to be called on events.

Another abstraction layer was added to prevent __build.py from having
to deal with the specifics of the pyinotify implementation.

Note that the WatchManager.add_watch.rec=True option isn't working for
me yet. Although I don't think I'll need it, it still needs to be fixed.

Also, I really haven't understood how pyinotify works yet ... the
tutorial isn't very enlightening, and the documentation generated from
the code makes me cringe.