libvirt: introduce new 'Host' class to manage the connection

Move all the code related to obtaining a new libvirt connection
out into a new 'Host' class. This covers the initial connection
attempt, testing of the connection, handling of connection close
events and handling of lifecycle events.

The appropriate tests are also moved out into a new HostTestCase
class

Blueprint: libvirt-driver-class-refactor
Change-Id: I64e84c4ed7b275632ef2ce3fa6e4be4c0ee8235a
Merge "libvirt: introduce new 'Host' class to manage the connection"