added some new functions to the Cloudstack client

For predicates, rule of thumb is to be safe for if unusual stuff is passed in (e.g. if there were a VM that somehow did not have a NIC, then we still want to find the other VM that has the matching IP rather than throwing an exception.