Introduced a Watcher interface which both watcher types implement.

Note: This is a breaking change

- Both File and Folder watcher now have functions for accessing the Modified and Moved channels
- The Folder watcher change details can now be access over the
  ChangeDetails() function