Directory walker doesn't handle errors correctly

The function `cork_walk_one_directory` does not handle error conditions from `readdir()` properly because it assumes `errno` is set *only* when a function returns from a error.  It turns out this is not the case; a function may set `errno` and yet return a normal (non-error) condition.  This needs to be fixed.