daemon: When valgrinding the daemon, take steps to cleanly exit daemon.

This adds a new internal API: internal_exit

Only when valgrinding the daemon, have the library call internal_exit
along the close path, and close the sockets first.  This ensures we
will see normal valgrind messages (we were only seeing valgrind aborts
before).

Note this is not used in production builds.
daemon: Ignore memory leak in aug_setm.

(Found by ./configure --enable-valgrind-daemon)
daemon: Fix scope of cleanup functions to avoid memory leaks.

Found by ./configure --enable-valgrind-daemon.
daemon: parted: Fix memory leak of list of strings.

Found by ./configure --enable-valgrind-daemon.
daemon: Fix macro definition.

Defined a bogus macro along an unused code path.
daemon: xattr: Fix scope of cleanup buf to avoid memory leaks.

Found by ./configure --enable-valgrind-daemon.
daemon: Don't leak 'device' string in parse_btrfsvol.

Since 'device' is assigned repeatedly, and because
device_name_translation allocates a new string each time, we have to
free it in the loop and along error paths.

Found by ./configure --enable-valgrind-daemon.
builder: Avoid parallel cache downloads from stomping on each other.

This should let you run virt-builder instances in parallel.
launch: libvirt: Suggest using the direct backend if libvirt fails.
events: Add a warning event and direct all warning messages through it.

This also causes warnings to be printed even in non-verbose mode,
which is useful.
debian: Warn if /dev/kvm is 0660 and user is not in the KVM group.

On Debian, /dev/kvm is mode 0660 and group kvm, so users need to add
themselves to the kvm group otherwise things are going to be very slow
(this is Debian bug 640328).
Version 1.23.30.