Add fs.watch recursive support

Currently fs.watch does not have an option to specify if a directory should be recursively watched for events across all subdirectories.

Several file watcher APIs support this. FSEvents on OS X > 10.5 is one example. libuv has added support for FSEvents, but fs.watch had no way to specify that a recursive watch was required.

fs.watch now has an additional boolean option 'recursive'. When set to true, and when supported, fs.watch will return notifications for the entire directory tree hierarchy rooted at the specified path.