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 agree with your breakdown of descriptions vs resource, but I want to make sure we keep compat with existing manifests while still giving config file authors the option to name their pods. This is why I assumed namespace and name would just get absorbed into Manifest.  More specifically I assumed that Kubelet would gro a Pod struct which would look something like:

type Pod struct {
    api.JSONBase
    Name string
    Namespace string
    internal.ContainerManifest
}

and that this type would be the one passed from master to Kubelet