Upgrade configdrive version

- Upgrade configdrive to use 2013-10-17
- Fix issue with vendor_data.json parsing

Co-Authored-By: Paul Querna <pquerna@apache.org>
Add failback for older Openstack configdrive versions

- Also utilizing the constants defined in
  cloudinit/sources/helpers/openstack.py for configdrive versions
Refactor vendor_data handling

vendor_data is guaranteed to be a dict if it exists; if it doesn't
exist ensure it's represented by an empty dict to avoid checking
it to see if it's a dict.
Update read_config_drive to use OS_VERSIONS tuple for readers

Updated read_config_drive: removed the unused version kwarg, used the
OS_VERSIONS tuple from the openstack helper to avoid hardcoding
versions.

Added a comment to the tuple in helpers/openstack.py asking for it to
be kept in chronological order.
Only use vendordata under cloud-init key for ConfigDrive

This data will be treated the same as vendordata from other sources.
merge from trunk
make BaseReader select latest supported version
fix log message
drop version= from readers

instead of taking a version that they should look for,
the readers now just select the highest supported version.

definitely a use case later for having version= but nothing 
is using it now.
ConfigDrive: support reading vendor_data similar to OpenStack MD reader

This makes the DataSourceConfigDrive support vendor-data in the same
way the metadata service reader does.  There are still some things to
fix here, but now we're similar between these two.

Also drops the ability to specify a version (as in YYYY-MM-DD) that you want to
look for.  Nothing was using this, but it may be useful to add back in
in the future and expose as a datasource config option.
OpenStack: search less urls to determine if MD service is there.

We were checking for presense of meta_data.json for each supported
metadata version.  Instead just check that /openstack is there.

This reduces the time to check on EC2 or any other cloud.