refactor(Makefile): better multi-node support

Our READMEs and Makefile really fall short for multi-node setups.
Specifically, we allude to the fact that DNS records will need to be
setup, but we don't provide additional info.

This commit updates the main README, contrib/ec2, and contrib/rackspace
with specific instructions for accessing the controller and router
for multi-node setups.

Additionally, the Makefile has been refactored so that there aren't
separate paths for 1-node and multi-node setups. Now we always start
the router, as we have provided instructions regarding DNS in the main README.
docs(dns): move content from README.md into "Configure DNS" doc
Merge pull request #870 from deis/dns_readme

refactor(Makefile): better multi-node support
fix(docker): add an ARP entry each time a container comes up
fix(contrib): #859 remove update manager stop commands from Vagrantfile
fix(user-data): use $private_ipv4 for etcd/fleet

All etcd/fleet communication should be private, so have etcd/fleet
only listen on private IPs. Remote fleetctl still works, as it uses
an SSH tunnel. There's really no reason to ever use $public_ipv4.
fix(contrib/ec2): use shared user-data

Previously, contrib/ec2 used its own stripped-down user-data file.
We have customizations in contrib/coreos/user-data, and we want all
providers using the same user-data file.

To do this, we introduce a Python script which will dynamically generate
the appropriate JSON payload from contrib/coreos/user-data when running
the provision-ec2-cluster script. While ideally this would be achieved without
requiring an external scripting language, this is very easy to achieve in Python,
and we already require Python as a dependency (since the AWS CLI is a Python package).

Also, have EC2 respect DEIS_NUM_INSTANCES like every other provider does.

closes #858, #826
docs(typo): change "EC2" to "Rackspace"
Merge pull request #869 from deis/contrib_use_user_data

fix(contrib/coreos/user-data): prevent reboots; use $private_ipv4 for etcd/fleet
style(coreos): remove unused systemd template strings
fix(controller): start logger service after container

Since we use `X-ConditionMachineOf={name}.service` in the logger
template, we were starting container and logger in the wrong
order. Found and fixed by @gabrtv.
refactor(controller): remove duplicate run() method
Merge pull request #877 from deis/logger-after-container

fix(controller): start logger service after container
Merge pull request #873 from deis/prime-arp-workaround

fix(docker): refresh ARP entry each time a container comes up
fix(Makefile): check for errors after controller

This must have been lost in a recent refactor.
Merge pull request #881 from deis/add_check_errors

fix(Makefile): check for errors after controller
Merge pull request #879 from deis/vestigial-templates

style(coreos): remove unused systemd template strings
fix(systemd): handle app containers on restarts

This was missed in 66660a4, which allows app containers to be
properly restarted on ungraceful host reboots. See the discussion
at #871 for more information.