fix(builder): disallow password authentication

Ref: #1340

Replaces the previous password prompt with an error message similar to:

    kamina ~/tmp/deis/example-go (git:master) ✔
    ❯❯❯ git push deis master
    Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

Ideally we would brand this with a Deis-centric message, but for now
this should be good enough until we overhaul the builder completely.
Merge pull request #1652 from deis/fix/builder/no-password

fix(builder): disallow password authentication
feat(builder): automatically run `git gc` on deploy

Ref #987

This should be replaced by a cronjob after we switch to the new init,
but this will do for now.
fix(controller): validate app structure values

This guards against `deis ps:scale web=-1` and other bad input.
Merge pull request #1654 from deis/feat/builder/auto-run-git-gc

feat(builder): automatically run `git gc` on deploy
Merge pull request #1658 from mboersma/1557-validate-ps-scale

fix(controller): validate app structure values
fix(controller): validate Cluster.domain field