The -Wextra flag bundle gained a new warning -Wcast-function-type.
This complains if you cast between two function prototypes where
the number of parameters or their data types are not compatible.
Unfortunately we need such "bad" function casts for our event
callbacks. It is possible to silence the warning by first casting
to the generic "void (*)(void)" function prototype, but that is
rather ugly to add throughout libvirt code.

Latest version of glib uses typeof() magic to cast the
return value of g_object_ref to match its argument,
instead of returning a 'void *'. A few places in the
code were casting the arg to G_OBJECT() which was then
incompatible with the variable we assigned the result
to. The parameter casts were always redundant so just
remove them.

The Test-AutoBuild project, that this script is supposed to be used
with, hasn't seen any activity in ~6 years; libvirt's own CI, which
also performs periodic builds of libvirt-glib, is running on Jenkins
with a completely independent setup that doesn't use the script at
all.

since the first call above won't return a complete list of objects present
in the domain but only the ones we have specific classes for and the
second call above overwrites all device nodes under the domain. This
lately made Boxes break against the latest libvirt, where a new device
node was made compulsory[1].

Although we should add support for all know domain devices ASAP, new
devices will be added in future and this can happen again. So let's first
ensure that gvir_config_domain_get_devices() always returns all devices
under the domain. All unknown/unimplemented devices will now be returned
as the very generic DomainDevice objects. Once we add support for a
particular device, there will be no API/ABI breakage since the new class
will inherit from DomainDevice class.

The python binding only supports python2, only supports
1 single API in libvirt-glib and has not even been enabled
in RPM builds since Fedora 15. Any distro these days should
have gobject introspection and pygobject available, so
there's no compelling reason to continue to have the python
binding exist.

The checks for virDomainOpenGraphicsFD and
virNetworkGetDHCPLeases in configure are simply trying
to compile and link a test program. This was assuming
that libvirt was installed in /usr/lib & /usr/include,
which is not always the case. Using a pkg-config version
check avoids needing to compile and thus avoids the
bad assumptions about install locations.

Add API to read and write domain/devices/hostdev nodes. This patch only
adds the baseclass and hence is not useful on it's own. A more specific
subclass to represent PCI devices will be added in a following patch.

The g_debug messages in libvirt-gobject creation/destruction were to aid
troubleshooting of object reference leaks. GObject has built-in systemtap
probes that allow the same to be achieved in a more flexible manner, so
the g_debug calls can be removed

The returned GVirStoragePoolInfo pointer is not a GObject so it must not
be unrefed using g_object_unref(). Since gvir_storage_pool_info_free()
is private function, callers must either use g_slice_free() or
g_boxed_free().

Give users an indication of what distro platforms the project
intends to be buildable on. This policy will be used to decide
when it is appropriate to increase the minimum required versions
of external dependancies.

As an example, as of July 1st 2015, this policy would aim to pick the
min versions based on what's available across the following sample
distros:

GVirConfigDomainVideo is using raw libxml calls to set the 'heads' and
'vram' XML attributes rather than the helpers provided by
GVirConfigObject. This commit changes that, making the code a bit
simpler.

Previously the use of virDomainOpenGraphicsFD API from libvirt
1.2.8 was made to be conditionally compiled. Given this past
practice, make use of the virNetworkGetDHCPLeases API
conditional too, rather than requiring newer libvirt.

The alternative would be to make use of #ifdef to only use newer symbols
from libvirt if installed version is >= 1.2.6 but that would require at
least 12 #ifdef in different places and hence very ugly IMO. Keeping in
mind that 1.2.6 is more than an year old now and it doesn't make much
sense to wanting to upgrade to latest libvirt-glib but not wanting to
upgrade to even an year old libvirt, this is very unlikely to cause any
real issues.

gvir_config_domain_set_memory() is a void function, so using
g_return_val_if_fail() is not correct. This causes a warning/compilation
failure on CentOS CI framework:
https://ci.centos.org/view/libvirt-project/job/libvirt-glib-build/systems=libvirt-fedora-20/144/console

Commit f525ba7796a2fd35bf55e88fb94459b2277fcd67 copied warning macros
from gnulib without keeping glib-specific settings. This build-breaker
brings back those needed ones except unused-parameter, which is no
longer needed.