Allow an empty service selector

Services that wish to maintain their own endpoints can specify an empty pod selector.  The controller now ignores services without a selector when setting endpoints.  The kubernetes and kubernetes-ro services now have empty selectors to reflect this.

Fixes #2358
They are not today, but we haven't globally removed them yet from internal so I was following convention only.

----- Original Message -----
> > @@ -593,8 +593,10 @@ type ServiceSpec struct {
> >  	// Optional: Supports "TCP" and "UDP".  Defaults to "TCP".
> >  	Protocol Protocol `json:"protocol,omitempty"`
> >  
> > -	// This service will route traffic to pods having labels matching this
> > selector.
> > -	Selector map[string]string `json:"selector,omitempty"`
> > +	// This service will route traffic to pods having labels matching this
> > selector. If empty or not present,
> > +	// the service is assumed to have endpoints set by an external process
> > and Kubernetes will not modify
> > +	// those endpoints.
> > +	Selector map[string]string `json:"selector"`
> 
> These json tags aren't used for anything, right?
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/2450/files#r21545029