refactor(controller): optimize layer creation

This restructures the Dockerfile in such a way that allows users to rebuild the
controller with minimal changes to the docker image's layers.
I think @gabrtv and I had this very discussion and the answer was that `deis/base` should be the one that keeps the repository up-to-date rather than the child images, which is what we do here: https://github.com/deis/base/blob/master/Dockerfile#L7

I totally agree with you that using `apt` inside Dockerfiles are ticking time bombs... Maybe we should install `git` from source instead. That at least reduces the surface area from "apt downtime and stale packages from cached `update`s" to "kernel.org downtime". I can do that in this PR if it'd make more sense :)