add vendor_data to the md service and config drive

There was not previously any way for a vendor to extend the metadata
service to include vendor specific or site specific information.

This adds an entry named 'vendor_data.json' to the metadata service, and also
to the rendering on config-drive.  vendor_data is intended to be a un-managed
place for cloud providers to put custom data that will then be available to the
instances.

The class used to generate the data is configurable via the flag
'vendordata_driver'.  The default class, JsonFileVendorData simply
loads data from a file that is configurable via 'vendordata_jsonfile_path'.
If that variable is not set, a empty dictionary is returned.

By setting
 vendordata_jsonfile_path = /etc/nova/vendor_data.json

The cloud provider can then expose custom data to all instances.

blueprint vendor-data
DocImpact

Change-Id: Ie2aceff1bf68edab124cd5f889aa9a8adcdc73c0
Merge "add vendor_data to the md service and config drive"