Rationalize `build` and `hack` directories

This also enables incremental builds for dockerized builds.

Fixes #1729
Why not simply:

```shell
if ps -ef | grep -q 'etcd.*name'; then
  kube::log::usage "etcd appears to already be running on this machine. Please kill and restart the test."
  exit 1
fi
```