Refactor kubelet, standalone k8s and integration test to all use the same code.

Large re-factor, unifies stand-alone k8s, kubelet and integration testing code paths.
It is super confusing to have SetupKubelet AND SetupKubeletConfig. Can something be made private? Can one of these get removed? Can you explain the purpose of these functions with comments, better names, or ideally both?