Implement deployments with pods

Refactor the deployment mechanism to be exclusively pod based. Refactor
the deployment API accordingly. Improve test coverage, and provide the
foundational support for implementing more built-in deployment strategies.
In a future change we should also include UID and we should check it.  We should also include it in annotations of child objects, and do that for builds and images and image repositories as well.  Use name and namespace to locate something, uid to validate it's still the same object.