handle: Free g->backend_settings.

This was not being freed, resulting in a memory leak if you used
LIBGUESTFS_BACKEND_SETTINGS.

Found by valgrind.
New APIs: set-backend-setting, get-backend-setting, clear-backend-setting.

Currently the backend settings are treated as a list of strings.  You
can set the whole list (clearing any strings there previously), but
you cannot search for an individual string or replace an individual
string.

This adds further APIs allowing you to do that.  We treat the backend
settings as a list of environment-like strings (ie.  name=value), and
add the following functions:

 - set-backend-setting (name, value)

   Set name=value.  Any previous settings of name are cleared.

 - get-backend-setting (name)

   Search for name or name=value and return the value.

 - clear-backend-setting (name)

   Remove any name or name=value settings.

This also adds a regression test.
ocaml: Add ESRCH to Guestfs.Errno module.
Remove internal libvirt_setlinux* APIs and use backend settings instead.

This removes the internal APIs internal_set_libvirt_selinux_label and
internal_set_libvirt_selinux_norelabel_disks.  The communication
between the libvirt domain and the backend now uses the backend
settings.
src: Fix test-utils.c to test the validate_guid function again.

This fixes commit 768ab2e01dab5a8e7e751c33b72c1341fcaf9dc3.