use fs.watch

* renamed Tail.{watch,unwatch} -> Tail.{watch,unwatch}File
* implemented new Tail.{watch, unwatch} based on fs.watch
* introduced @watcher, @pos
* updated Tail.readBlock to increment pos as appropriate
minor fixes to fs.watch based implementation

* set pos using `fs.stat`, reset it in `Tail.unwatch`
* emit `error` if stat fails
* fix typo in unwatch that caused watching to fail if a file is renamed
fall back to fs.watchFile if fs.watch is missing

* Tail.watch now checks for fs.watch and falls back to fs.watchFile 
* Tail.unwatch also checks for fs.watch, to determine its strategy
* inlined old Tail.{watch,unwatch}File as they were pretty skinny. 
* extracted callbacks into instance methods
Merge pull request #7 from strcrzy/master

Use fs.watch instead of fs.watchFile