Limit 'Too many active clients' libvirt errors

When calling facter, put libvirt connection in cache to prevent
'Too many active clients' errors and connection dropping. The
connection is released when facter exits (like before, but this
time there is only one connection)