Redmine #6570: Improve error messages when encountering unsafe links.

First of all, change the return code when we encounter unsafe symlinks
so that the message in general is more understandable. We're forced to
use errno codes, which doesn't give us the greatest selection, but
ENOLINK ('Link has been severed') seems like the best one.

Also, improve the error message even more for the specific case where
we want to access a file using a file promise inside such a directory,
since that case is very common.
Should this be testing orig_flags rather than flags ?
I can't see enough of the code here to be sure (and github's review system is being particularly good at making me wait for long periods of time when I try to open out more code, today).