fix broken test (watch on unreadable dir), tweak code, fix race in test

- Fix test where a watch is on a folder instead of a filename.
- Fix test where a unique call to `Read` is done, when `ReadAtLeast` should be used (`follower` expects clients to retry reads when it returns `0, nil`).

Few style tweak about error checking.