RFC: Docker-based development support

### Why build or run OpenShift in Docker?

Building and running on bare metal and on VMs each have advantages and disadvantages. Using Docker for builds and development is useful when bare metal is too limited and VMs are too cumbersome. Here are some of the reasons to use Docker when developing OpenShift:

  * Many of the scheduling, load balancing, replication, and routing features typically only available to multi-machine VM setups become available but without the need for VMs. (Each component is bound to its own routable IP in a flat subnet topology that more accurately resembles a prod clustered deployment.)
  * It's easy to compose and share portable runnable images to implement arbitrary topologies for testing, demos, and development.
  * With warm caches, the build and launch cycle is very close in turnaround speed compared to bare metal development with `hack/build-go.sh`.
  * Docker makes it possible to create integrated, shared development toolkits which are more portable than native scripts and provide a more native user experience than VM tooling. (For example, `origin-build` provides `httpie` to developers with no host requirements beyond Docker, and in a way which can easily and closely integrate with both the cluster components and the host OS)

hack/images/origin-build