[WIP] Refactoring config sources on proxy/kubelet

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.

The first two commits are reasonably complete, kubelet will take
a bit longer.  Would like to expose the updated pods to the kubelet
sync in a way which avoids excessive rescans (perhaps through a
different Update interface that conveys changes).  Will try to
break this into iterative steps of refactoring.  

Comments on direction appreciated
@smarterclayton How about close(ch)? Since the channel is just used for sending a `completed` signal.
Also how about `make(chan struct{})` or `make(chan empty)`, which is more preferred go convention[1] IMO.

[1]http://blog.golang.org/pipelines