extract_single_file: consolidate symlink cases

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
unlink_file: treat symlinks like normal files

We always want to work with the package file itself, not its target if
it's a symlink.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
query_fileowner: remove symlink support

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
improve dir->file transition conflict resolution

Packages removed due to conflicts are always removed at the beginning of
the transaction and as such can be included in the check for whether all
owners of a directory will be removed in a transaction.  Installed
versions of packages being upgraded, other than the one with the
conflict, cannot be used because our transaction ordering is not
intelligent enough to ensure that they are removed prior to the
installation of the conflicted package.

Also, return false from dir_belongsto_pkgs on errors.  Previously, we
simply continued which could return true even if we were unable to
actually establish that the package owned the entire tree.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>