The symlink of /var/lib/cloud/instance is not created at the time that the
datasource for SmartOS runs. This patch creates the instance's directory.
smartos: fix bug in previous commit

The code in the previous commit was creating /var/lib/cloud/instance/
when it should not have.   This is better handled now by using
/var/lib/cloud/instances/<instance-id>, and then letting the link get
created by cloud-init elsewhere.
DataSourceOpenStack: allow vendor-data to be a dict with 'cloud-init' inside

There might be multiple things to put inside a vendor-data.
So, if it is a dict and that dict has 'cloud-init', assume that the whole
thing was not meant for cloud-init, and set vendordata_raw to the specific
item.
DataSourceGCE: fix 'is_resolvable', remove unnecessary WARN