libvirt: parallel operations support

Speed up virtual machine operations by running them in parallel.

Host node selection changed to weighted random.
libvirt: better error message when provider fails to return updated props
libvirt: better error output when ip address lookup fails

This improves the error messages to the user when e.g.
'cloud.default_network' is set to an invalid value.
libvirt: parallel libvirt ssh connection creation

Speeds up large deployments.