drives: Change internal struct drive_source.

This is just code refactoring.
drives: Whitespace change.
drives: Add a common guestfs___free_drive_source function.

This refactors the code to introduce a common function.
inspection: Remove unused #includes.
drives: Allow multiple servers to be passed to add_drives.

This changes the existing (non-published-in-stable) API for
add_drives{_opt} so that instead of having separate 'server' and
'port' parameters, now we have a single 'server' parameter which is a
list of strings.

This is so we will be able to cope with protocols such as Ceph which
allows multiple servers, or Sheepdog which can use an implicit local
server (ie. zero servers specified).

NBD still requires exactly one server.
drives: Factor out common code for making a file= qemu parameter.
tests: nbd: Ensure qemu-nbd subprocess is always killed.

Even if the test fails/dies for some other reason.
nbd: Allow 'unix' transport & socket to be specified.

This allows the server string to contain "unix:/path/to/socket",
thus using a Unix domain socket to connect to the NBD server.
Version 1.21.22.