Add support for a watchman mode
Adding the third mode meant that the complexity has grown enough to seperate the modes into it's own classes:
* NodeWatcher: the mode which uses fs.watch and maintains it's own bookkeeping
* WatchmanWatcher: A thin layer over watchman's fb-watchman node binding to implement the sane API
* PollWatcher: A thin layer around the node "watch" package to implement the sane API
All these libraries implement the same interface and it should be very easy to drop in one or the other.
The tests passed with no changes, which is great.
Updated Readme.