add skeleton
implements simple watch service
WatchService: fix some issue

- getEvent not returning even tough there is a change
- use addEvent
- add test
WatchService: not recursive and getEvent timeout
WatchService: check if directory exists or not before scan
WatchService: fix non-recursive scan
WatchService: implements pause & resume, fix stop
WatchService: implements ignore directories
WatchService: remove unneded code
WatchService: implements rename file detection

delete event not working for now
WatchService: implements delete event
WatchService: put renamed file back to watched files
WatcherThread: using WatchService
WatchService: fix modify event spam
WatchService: fix delete event spam
Merge branch 'master' into watch-service
WatchService: add WATCH_STOP event
WatcherThread: implements create and delete document
WatcherThread: implement rename and update document
IndexWriter: rename removeDocument to remove