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.
Agreed, but the Pods that are updated don't have a way of saying "heres what I was updated from", nor is there a fine grained breakdown by type of thing that has been updated (i.e. port changed vs image changed vs name changed vs environment changed etc).  I was a bit leery of making any deep improvements here until we'd thought through that, so my compromise was to report the things that were changed so that the syncLoop could print and tell you you didn't get anything.