system: new file writer for updating env-style files

This can be used to safely update config files cloudinit does not have
exclusive control over. For example update.conf or /etc/environment.
environment: add support for updating /etc/environment with IP values

To maintain the behavior of the coreos-setup-environment that has
started to move into cloudinit we need to write out /etc/environment
with the public and private addresses, if known. The file is updated so
that other contents are not replaced. This behavior is disabled entirely
if /etc/environment was written by a write_files entry.
Merge pull request #178 from marineam/env

Write /etc/environment