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.
Er, what I meant to say and did a very bad job of saying because my suggestion is completely wrong, is that in the case where there's both an update and an add/delete, it's kind of redundant to send all the updated stuff and then resend everything, since the updated stuff is included in everything.