Use config sources for Kubelet, switch to podFullName

As discussed in #297 and also a side discussion about abstracting the Kubelet from being directly dependent on etcd, start refactoring config service to decouple sources of config from sync loop and switch from Manifest.ID -> Pod Full Name in the Kubelet.

Simplifies the Kubelet Run() step by requiring configuration to be defined up front, and an update channel passed into the Kubelet.
FWIW, I prefer to see an object's goroutines created either in the object's New() function, or in a Run() function, if the object requires configuration after New and before the goroutines are started. This is because the exact phrasing of starting the goroutine (name of function? parameters? who is responsible for protecting against crashes?) is, I feel, an implementation detail that one should not force the object's users to learn.