feat(router): support for multiple routers

This commit adds functionality to the Makefile to launch multiple
routers, which is the first step towards a HA Deis installation.

Additional routers can later be added to an existing cluster by setting
DEIS_FIRST_ROUTER to start the router numbering at something other than 1.

Note that load balancing / DNS records must still be set up manually.

We also have the router publish its host:port to the namespace
/deis/routers/$HOST, as we have the possibility of multiple routers
in the cluster.

closes #922
docs(*): add bare-metal guide

Adds some light documentation around bare metal provisioning.

closes #730
Merge pull request #979 from deis/baremetal_docs

docs(*): add bare-metal guide
Merge pull request #969 from deis/multiple_routers

feat(router): support for multiple routers
docs(bare-metal): filled in bare metal section in provision doc

We need a docs.deis.io anchor for bare metal to reference from deis.io.
Merge pull request #982 from deis/update-provision-doc

docs(bare-metal): filled in bare metal section in provision doc
docs(*): update docs for local3.deisapp.com, local5.deisapp.com

We've created the convenience records for local3.deisapp.com and
local5.deisapp.com, so local clusters no longer have to manage
DNS whatsoever.

closes #747
Merge pull request #978 from deis/local_dns_docs

docs(*): update docs for local3.deisapp.com, local5.deisapp.com
feat(dockerfile): improve dockerfile and procfile workflow

- add SHA, Procfile and Dockerfile to Build model (if available)
- fix operator precedence bug from deis/deis#890
- add container type check before scale operations (fixes #496)
- add uniqueness constraint check on container type/num
- use SHA in release summary if available
- auto-scale web=1 for heroku workflow, cmd=1 for docker workflow
- add tests for heroku and docker workflows, plus test for invalid process types
feat(builder): update builder to pass SHA/Procfile/Dockerfile (if available)
fix(announcer): detect first exposed port instead of hardcoding to 5000/tcp
fix(schema): remove uniqueness constraint on containers
fix(controller): only scale web=1 if procfile has web entry
fix(scale): move initial scaling logic to model, add tests
fix(migration): squash migrations, add newline
fix(builder): include default_process_types from .release
fix(deploy): rework initial deploy logic based on workflow
fix(flake8): resolve code formatting issues
fix(tests): close db connections during threaded execution

This appears to resolve https://code.djangoproject.com/ticket/22420
allowing us to get test coverage for threads executed within
TransactionTestCases.
docs(developer): flesh out developer docs