Add libvirt version check macro from libvirt upstream

Add LIBVIRT_CHECK_VERSION from libvirt upstream so that we can check the
version of the library we are compiling against and support a range of
libvirt versions. The macro was added to libvirt in 1.1.5 so we must
provide it if its not defined.
hacks to skip LXC when unsupported

Needs correct refactor and reimplementation
virTypedParams* API appeared in 1.0.2
virNodeGetCPUMap API not added until 1.0.0
virDomainMigrate3 and virDomainMigrateToURI3 not added until 1.1.0

The functions virDomainMigrate3 and virDomainMigrateToURI3 were not
added to libvirt until v1.1.0.
Wrap new domain create APIs added in 1.1.1

virDomainCreateXMLWithFiles() and virDomainCreateWithFiles() were not
added to libvirt until 1.1.1
virConnectGetCPUModelNames() did not appear until 1.1.3
virDomainGetJobStats() was added in 1.0.3
virDomainMigrateGetCompressionCache() was added in 1.0.3
VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK added in 1.0.0
VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED was added in 1.1.1
Add missing break to switch-case block

The case label for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED did not have its
own break statement but relied on falling through which we probably
don't want.
Bring some virTypedParams* API from libvirt

virTypedParamsClear() and virTypedParamsFree() were introduced in
libvirt 1.0.2. In an effort to keep the code clean bring these two
functions to libvirt-python if we're building against a version of
libvirt that's older than 1.0.2