Refactor for clarity and more flexibility

New features:

    1. Recursively watch files
    2. Specify file extensions to watch
       Defaults: .js .html .css .less .json

Bugs killed:

    1. Double-notification of modify events on Linux