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.
So Manifest and Pod would both have Name and Namespace, with ID removed from Manifest, and source config authors can only send a manifest.  The kubelet would have to prefix the namespace passed in the manifest, to prevent collisions across config sources.  The apiserver would have to set the manifest with the name == ID and the namespace == apiserver namespace prior to scheduling.  Replication controllers would have empty name and namespaces (values would be silently dropped on pod creation).

Trying to think of other implications...