Merge pull request #238 from crawford/docs

docs: fix documentation of coreos.units.command
etcd: refactor config

- Explicitly specify all of the valid options for etcd
- Remove the default name generation (ETCD_NAME is set by its unit file now)
- Seperate the etcd config from Units()
- Remove support for DISCOVERY_URL
- Add YAML tags for the fields
fleet: refactor config

- Explicitly specify all of the valid options for fleet
- Seperate the config from Units()
- Add YAML tags for the fields
oem: refactor the config

- Seperate the config from File()
- Add YAML tags for the fields
update: refactor config

- Explicitly specify all of the valid options for Update
- Seperate the config from File() and Units()
- Add YAML tags for the fields
unit: refactor config

- Seperate the config from Destination()
- Add YAML tags for the fields
file: refactor config

- Seperate the config from Permissions()
- Add YAML tags for the fields
user: move User into config package

- Add YAML tags for the fields
cloudconfig: refactor config

- Move CloudConfig into config package
- Add YAML tags to CloudConfig
Merge pull request #234 from crawford/validate

config: explicitly specify fields and seperate config and application
AWS: Eucalyptus 4.x compatibility fix

For Eucalyptus 4.0.1 requesting metadata seem to work differently as with EC2.

In Euca:
> curl http://169.254.169.254/2009-04-04
<?xml version="1.0"?><Response><Errors><Error><Code>404 Not Found</Code><Message>unknown</Message></Error></Errors><RequestID>unknown</RequestID></Response>core@localhost ~ $

> curl http://169.254.169.254/2009-04-04/
dynamic
meta-data
user-data

In AWS EC2
> curl http://169.254.169.254/2009-04-04
"" (zero bytes)

> curl http://169.254.169.254/2009-04-04/
dynamic
meta-data
user-data

As the isAvailable() function in metadata.go tests only for errorcode
it fails in Euca.
Merge pull request #240 from epankala/euca4_compat_fix

AWS: Eucalyptus 4.x compatibility fix
coreos-cloudinit: bump to 0.10.4
coreos-cloudinit: bump to 0.10.4+git
init: simplify CloudConfigUnit interface
Merge pull request #245 from jonboulle/units

init: simplify CloudConfigUnit interface
config/validate: add new config validator

This validator is still experimental and is going to need new rules in the
future. This lays out the general framework.
flags: add validate flag

This will allow the user to run a standalone validation.
script: move Script into config package
config: move user-data check into config package