Print an error message if valgrind failure is detected in the daemon.

This updates commit 55e3b8711f340a2f8bdb8ee8ff99deb40b4e9108.
Fix --enable-valgrind-daemon so it doesn't break valgrind of the library.

Using ./configure --enable-valgrind-daemon breaks valgrinding of the
library because guestfs_close wouldn't call guestfs_shutdown in that
case, resulting in some resources owned by the backend being leaked.

After this commit, --enable-valgrind-daemon will shut down the handle
normally.

This updates commit 55e3b8711f340a2f8bdb8ee8ff99deb40b4e9108.
tests/mountable: Better error messages.

Better error messages (for diagnosis) when this test fails.  Also this
fixes the line endings which were broken before.
daemon: Move all RESOLVE macros to daemon/stubs.c.

These macros are pretty horrible to use, with unexpected side-effects.
Move them exclusively into the generated code and rewrite the one
place in the general C code which used them.

There's no functional change in this code.
daemon: Device name translation now allocates a new string.

Previously device name translation worked on the string in-place.

This worked fine because the device strings always come from XDR where
they are dynamically allocated.  However it wouldn't work if the
translated name had to be longer than the original, specifically for
/dev/sd -> /dev/ubd (for User Mode Linux).

Therefore this commit changes the generator so that
device_name_translation and parse_btrfsvol (which depends on it)
allocate the new device name instead of overwriting it.