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.
I think it does - however, looking at the scope of the change, I'd prefer to do it as a followup (it's better code, but is pretty invasive, and the current pattern isn't terrible, just not as optimal).  I also want to think more about the etcd index remembering across panic()s