source: Print useful error if local repo doesn't exist
source: Print useful error if local repo doesn't exist

hif_sack_add_source() does hif_source_check() -> hif_source_update(),
and the former errors out due to ENOENT, but update() does nothing for
local repos and just returns TRUE.  We end up segfaulting down the
line.

Fix this by having hif_source_update() verify existence for local
repos.  We use stat() instead of g_file_test() so we can provide a
useful strerror from the errno.

Conan-Kudo/libhif,Conan-Kudo/libhif,edynox/libdnf,Conan-Kudo/libhif,kalev/libhif,rpm-software-management/libdnf,edynox/libdnf,rpm-software-management/libhif,juhp/libhif,rpm-software-management/libhif,hughsie/libhif,edynox/libdnf,hughsie/libhif,Conan-Kudo/libhif,cgwalters/libhif,cgwalters/libhif,cgwalters/libhif,hughsie/libhif,kalev/libhif,rpm-software-management/libdnf,edynox/libdnf,hughsie/libhif,rpm-software-management/libhif,juhp/libhif,rpm-software-management/libhif,cgwalters/libhif,rpm-software-management/libdnf,rpm-software-management/libdnf