tests/extra: Add workaround for memory leak in libvirt.

See: https://bugzilla.redhat.com/show_bug.cgi?id=847429
(cherry picked from commit 04b475b41476b75ef3851fdd093a9868df0c7357)
generator: 'delete' is a reserved word (in C++).
(cherry picked from commit 7d6f76709e71b38e0bc4f018c4d873a32ffe19da)
virt-make-fs: Remove note about vfat and ownership of tarball files.

This problem has been fixed in
commit 50780a84f65ec5d76605691cea889392c2730f54.
(cherry picked from commit 2295b09f259ece053f1370f7527d01705976732a)
ocaml: Use Store_field macro instead of caml_modify.

Use the safer, higher level Store_field macro when constructing arrays
of structs to return.

I don't know if it is strictly necessary in this case, but it's safer.
(cherry picked from commit 769a6f24c60e7a4d55560025554796ba4be19d03)
bindtests: Space before parens in call.
(cherry picked from commit 690bdaa3927e56d33e241752eef37f887274d73b)
daemon: New utility functions 'join_strings', 'concat_strings'.

Useful functions for concatenating strings together.

(cherry picked from commit 637b06ab1384f0c904715ba76fc759dac1b95500)
Even on Debian, the package containing the diff binary it has been diffutils for two years.

There had been a virtual package "diff" that depended on diffutils, but that's gone in wheezy/sid, too.
(cherry picked from commit 3234a1f903bb77c66252b38425a4c913f8e7bb8c)
generator: Allow permission of output files to be specified.
(cherry picked from commit 449bd4b50ff8ecd9128439a39a74ca731a17aa1f)
python: Fix comment referring to Perl(!)
(cherry picked from commit 7dd2389359d190e81696f1b2e91e719bdc1822f2)
ocaml: Fix bindtests when passing negative optional arguments.
(cherry picked from commit 9526f632d80f8d66ecf8a7da5444e1446129fceb)
java: Fix bindtests when passing 64 bit integer literals.
(cherry picked from commit 704e46af9c054fe3571884989c992dfd7d8284e5)
close: Check if g->tmpdir is non-NULL before removing tmpdir.

This happens, by chance, to work.
(cherry picked from commit ba61236d0d6756f45d8707e96cda00c016cadebe)
inspect: Clarify comment about uniqueness of cache.
(cherry picked from commit 8fd6f1bebef11d1c4eb77ac2b7d95fd5a7e82be9)
lib: Add 'g->unique' to handle, for making unique IDs.

(cherry picked from commit 22607a97cdf115caabf05c3dc87c5f154a2e914c)
launch: Add utility function guestfs___lazy_make_tmpdir.

This lets us create g->tmpdir lazily earlier if needed.

This commit is just code motion.

(cherry picked from commit 4b8ac437295d5420d3186a913bc3740b69a8d342)
test-launch-race: Use /dev/null instead of hand-made zero-length file.

There seems to be no reason why creating a zero-length
file is necessary for this test.
(cherry picked from commit 7f9f2818651860a15a7142d3761e3168e062c357)
subdir-rules.mk: Remove rules that recursively build src/ and daemon/.

These are unnecessary, and slow down the whole build.
(cherry picked from commit 856e78a2ce025563de5d9e8c416edf054b0db563)
run: Disable 'memory optimizations' in glib programs, for valgrind (thanks Dan Berrange).
(cherry picked from commit 5e6727746367ba3f935dccb80109abf8e34fe74d)
recipes: Add a section on deleting a file and other common file operations.
(cherry picked from commit 10d48bef3055e1b7177b4f8df52133c50484a87a)
recipes: For listing files, point to virt-ls.
(cherry picked from commit d944a491ac3aa9b9ed1bcdc0ee378519a367276a)