cloudinit: merge cloudconfig info from user-data and meta-data

This attempts to retrieve cloudconfigs from two sources: the meta-data 
service, and the user-data service. If only one cloudconfig is found, that is
applied to the system. If both services return a cloudconfig, the two are
merged into a single cloudconfig which is then applied to the system.

Only a subset of parameters are merged (because the meta-data service 
currently only partially populates a cloudconfig). In the event of any 
conflicts, parameters in the user-data cloudconfig take precedence over those
in the meta-data cloudconfig.
hmm, just realised ParseMetadata needs a test for this, and everything else... stand by