Proposal: v1beta3 API overhaul

Speculative change for some items from #1200:

* Metadata that applies to resources is split from APIMetadata on non-resource API objects
* Metadata is a sub field of objects
* Labels are on Metadata
* Pod current and desired state is split
* Name is used for pods instead of ID (UID is part of metadata, Name is part of resource) for idempotent creation #148 and #1216 
* PodTemplate is a Metadata carrying object as per #170
 * If replicationController gave way to a generic "replicator", then pod template could be both a nested struct and a real resource.
* A ScheduledPod and ScheduledPodList is what the kubelet sees as per #860
* Non-schema'd k/v values on Metadata as `Config` (better names welcome) as per #1201

Not changed yet:

* ReplicationControllers
* Services

EDIT: Moving to higher bandwidth document here: https://docs.google.com/document/d/1E_HNsbyocweD9zJHXbz5Xb9XPwBqvDnLHhGeBq15FlI/edit?usp=sharing
I am too - we could punt on it by leaving ServiceStatus empty for now.

----- Original Message -----
> >  }
> >  
> > -func (*Service) IsAnAPIObject() {}
> > +// ServiceList holds a list of services.
> > +type ServiceList struct {
> > +	TypeMeta `json:",inline" yaml:",inline"`
> > +	Metadata ListMeta `json:"metadata,inline" yaml:"metadata,inline"`
> > +
> > +	Items []Service `json:"items" yaml:"items"`
> > +}
> >  
> >  // Endpoints is a collection of endpoints that implement the actual
> >  service, for example:
> >  // Name: "mysql", Endpoints: ["10.10.1.1:1909", "10.10.2.2:8834"]
> >  type Endpoints struct {
> 
> I'm confused about the overlap of Endpoints and ServiceStatus
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/1225/files#r18002692