Be consistent with io-related error messages.
Harmonize link-reading logic.

Eventually this may want to get factored out.
Deal with the case where `statBuf.st_size` is `0`.

See included comment.
Promote the link reading code to the `util` module.
Use `utilReadLink()`.
Better handle the zero-size case.
Merge pull request #766 from danfuzz/find-myself

Fix link reading