Refactor build API and controller (1/2)

Refactor the build API and validation. Refactor the build controller
to use the upstream cache package where possible. Use watches wherever
possible.
Add tests for refactored build system (2/2)

Add test coverage for refactored builds.
Update build example JSON
Replace kubeclient with kclient
Merge pull request #337 from mfojtik/kubeclient

Merged by openshift-bot
fix token validation
Merge pull request #339 from deads2k/deads-fix-token-validation

Merged by openshift-bot
Replace kubeapi with kapi
Merge pull request #335 from ironcladlou/build-cache

Merged by openshift-bot
Some files had bad Go formatting
Switch from Fedora docker base to centos, centos is a much smaller image
WIP: make openshift-deploy a sibling to openshift-router
Rename kube-deploy -> origin-deployer and gofmt
Reorganize the OpenShift builds into three stages

* Base image - based on CentOS 7 and are the core for other images
* Release image - a Git cross-platform compile environment that isolates external dependencies
* Origin and other dependent images
* Add useLocalImages to custom pod deployer

The release build generates a set of tar archives containing the binaries for each platform.
The origin image uses the binary from the release, without the Git environment. The remaining
platform images are based on the origin image and do no builds of their own.
Merge pull request #340 from sajmoon/replace-kubeapi-with-kapi

Merged by openshift-bot
Merge pull request #304 from smarterclayton/organize_docker_builds

Reorganize OpenShift Docker image builds
Build release puts binaries in wrong directory
Add grant approval, scope.Add, tests
Code review