Merge pull request #197 from crawford/ec2

datasource: Fix ec2 URLs
initialize: use correct heuristic to check if etcdenvironment is set

In some circumstances (e.g. nova-agent-watcher) cloudconfig files will
be created where the EtcdEnvironment is an empty map, and hence != nil.
If this is the case we should not do anything at all (because the user
hasn't explicitly asked us to configure etcd). This change standardises
behaviour with the check that we already do for FleetEnvironment.
Merge pull request #200 from jonboulle/fu

initialize: use correct heuristic to check if etcdenvironment is set
configdrive: fix root path
environment: write new keys in consistent order
Merge pull request #201 from crawford/configdrive

configdrive: fix root path
Merge pull request #202 from jonboulle/env

environment: write new keys in consistent order
coreos-cloudinit: bump to 0.9.2
coreos-cloudinit: bump to 0.9.2+git
configdrive: Remove broken support for ec2 metadata

As it turns out, certain metadata is only present in the ec2 flavor
of metadata (e.g. public_ipv4) and other data is only present in
the openstack flavor (e.g. network_config). For now, just read the
openstack metadata.
Merge pull request #204 from crawford/configdrive

configdrive: Remove broken support for ec2 metadata
coreos-cloudinit: bump to 0.9.3
coreos-cloudinit: bump to 0.9.3+git
add(cepgo): import github.com/cloudsigma/cepgo
add(goserial): import github.com/tarm/goserial
feat(datasource/metadata): Add datasource for CloudSigma
test: Enable tests for CloudSigma
metadata: Refactor common parts out of ec2
digitalocean: Add DigitalOcean metadata service
networkd: Fix bug causing bonding to always be loaded