Watcher moved to separated sources

For better organization, watcher sources are moved to separated
files since we are going to implement more complex things and
theres plans to support different apis (inotify works only on
Linux).