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's super confusing to have both a StartKubelet and a RunKubelet. Can you change names and/or expand comments? Perhaps AutoRunKubelet or RunKubeletNoConfig?

Better yet, why not have Start take *just* a config, put all options in the config, and make a config default-setting function. Then you can just have Start and no Run.