build: Rearrange src/Makefile.am into a more logical order.

This is just code motion.
build: Remove long and mostly irrelevant comment about libtool versioning.
lib: Rename guestfs_error_errno as guestfs___error_errno, etc.

These are internal functions.  Very old versions of libguestfs used to
export them, but they haven't been (and shouldn't be) exported for a
long time.

Also remove the unused guestfs_error function.
lib: Create libutils convenience library.

The libutils convenience library is a place for code shared between
the main library, language bindings and virt tools.  Note that the
code is statically linked into both the library, each binding and each
tool, but this is an improvement because (a) the source is shared and
(b) libguestfs.so can export fewer private functions.

Currently it contains the cleanup functions, and the functions
guestfs___free_string_list function and guestfs___for_each_disk.

guestfs___for_each_disk has changed so that it no longer
unconditionally sets the error in the guestfs handle.  Instead callers
can control error handling.
erlang: Use guestfs___free_string_list from libutils, instead of custom version.
libutils: Add guestfs___count_strings utility function to common library.
fish: Use guestfs___{free_string_list,count_strings} utility functions.

Instead of custom-coded versions.
lua: Use guestfs___free_string_list instead of custom-coded version.
ocaml: Missing #include <config.h> in generated file.
ocaml: Use guestfs___free_string_list instead of custom-coded one.

It should be possible to add the guestfs___free_string_list to
dllmlguestfs.so, but I cannot work out exactly how to do this.  As a
result we end up using src/utils.c directly.
python: Use guestfs___free_string_list instead of custom version.
Use guestfs___count_strings instead of custom versions in various places.
Version 1.21.13.