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.
initialize: add tests for ParseMetadata
ParseUserData: return nil on empty input string
Merge pull request #166 from jonboulle/merge

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