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 hate to disagree with @thockin, but I find this to be a novel and inventive use of util.Forever.

I suppose the more normal thing to do, though, would be to make index a private member of ConfigSourceEtcd, and use ```go util.Forever...``` to run this function.