fix(controller): set default release image

If you scale an application with `deis scale cmd=1` before an
application has been pushed, it should deploy deis/helloworld.
However, the initial release (v1) does not have a image set for
the release, only the build. Setting the default to deis/helloworld
fixes the "scale before deploy" problem.
feat(contrib): add DigitalOcean provisioner booting CoreOS via kexec

This introduces a provisioning script for Deis on DigitalOcean droplets. As DigitalOcean
does not (currently) support CoreOS, we deploy CoreOS on top of Ubuntu 14.04 using kexec
on boot to switch to the CoreOS kernel and initrd. The state filesystem is a loop
mounted btrfs.

The CoreOS bootstrapping is heavily based on Levi Aul's code:

  https://gist.github.com/tsutsu/490f35f48897df0f5173

We don't use Debian 7.0 as base distribution because kexec is unstable on the Debian
kernel.
refactor(contrib/digitalocean): clean up README, act more like other contrib/ scripts

Updates the README to flow more like the other contrib/ scripts.
Also adds a provision-do-cluster.sh
feat(contrib/ec2): launch into vpc

Modifies the cloudformation configuration to create resources within the
confines of a VPC.

fixes #1005
fix(contrib/ec2): fix launching into VPC

To successfully launch into a VPC, we must specify the availability
zones associated with each subnet.
fix(*): fix etcd_safe_set to not override values

Refactors etcd_safe_set so it doesn't overwrite custom settings.

TESTING: rebuild and restart components, setting a non-default
custom value
```console
dev $ make uninstall
dev $ vagrant rsync && make build
dev $ vagrant ssh
coreos $ etcdctl set /deis/controller/webEnabled 1
dev $ make run
```
Make sure the settings have taken effect.

Changes proposed by @aledbf

fixes #1210
feat(controller/coreos.py) Adding TimeoutStartSec to log and announce services

Sometimes log and announce services fail to start because they depend
on the main service, but if it takes too long they fail because of
timeout. This commit just adds the same timeout to log and announce
services than the main service has.
chore(contrib/digitalocean): make NYC2 the default region
fix(controller/registry): add old config vars

In child images, we weren't dumping the old config variables from
previous images. This would fester and would run into issues such as
environment variables going missing. Adding them back solves this issue.
Merge pull request #1217 from deis/do

feat(contrib): add DigitalOcean provisioner booting CoreOS via kexec
Merge pull request #1232 from deis/aws_vpc

feat(contrib/ec2): launch into vpc
Merge pull request #1212 from deis/fix_etcd_safe_set

fix(*): fix etcd_safe_set to not override values
Merge pull request #1336 from deis/1326-container-config

fix(controller/registry): add old config vars
docs(*): add back references to DigitalOcean support
chore(coreos): upgrade to 379.3.0

This also bumps Docker to 1.1.1.

Note that this also changes the device names for EC2
and DigitalOcean, as CoreOS changed these as of 379.0.0.
Merge pull request #1352 from deis/add_do_to_docs

docs(*): add back references to DigitalOcean support
fix(tests): close socket listener in GetRandomPort()
fix(tests): build docker image as first test step

This keeps us from starting etcd and other test support services
minutes before they are needed, and makes the component tests
fail faster when there are build errors, which is not uncommon.
feat(tests): only pull deis/test-etcd if it is missing
feat(tests): only pull test-postgresql if it is missing