daemon: Change ln, ln-f (hard-link) APIs to use link(2) instead of external ln (RHBZ#895905).

The reasons to do this are twofold:

(a) It's probably a tiny bit faster.

(b) It lets us capture the real errno if the link(2) syscall fails.

The errno is also passed through guestmount, fixing RHBZ#895905:

+ guestmount -a test1.img -m /dev/sda1:/ -m /dev/sda2:/boot /tmp/mnt
+ touch /tmp/mnt/foo
+ cd /tmp/mnt
+ ln foo boot/foo
ln: failed to create hard link ‘boot/foo’ => ‘foo’: Invalid cross-device link

(cherry picked from commit 533082e28240522df51e6615d99794d726c8e1f0)
fuse: If guestfs_last_errno returns 0, don't return no error to FUSE layer.

guestfs_last_errno (g) == 0 doesn't mean "no error".  It means the
errno was not captured.  In this case we have to substitute some sort
of errno, so choose EINVAL arbitrarily.
(cherry picked from commit 28e34290ff0dc11e9c5d8b8a1e5992cd0cc941fb)
proto: Fix stack overflow when there are many progress events (RHBZ#909624).

Thanks: Eric Blake.
(cherry picked from commit b3cf5d1d9638313a656ee61f1bd5f06bbca21abf)
python: Let RHashtable be returned as a Python dict.

The initial proposal was suggested by Matt Booth and discussed on the
mailing list here:

https://www.redhat.com/archives/libguestfs/2013-April/msg00007.html

(cherry picked from commit ba0199c487feec7f02cfc00ba3e900e6fa5ed4d8)
daemon: file: Remove extraneous space after output of 'file' command (RHBZ#928995).
(cherry picked from commit d6ea2f5911a6c7f3037ae822e872b810ad80ba51)
(cherry picked from commit ffefe26ec5b6ab676312203b070b9b46ad95973d)
valgrind suppressions: Suppress libmagic leaks.
Version 1.18.12.