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
What about:
    { "spec": { ... }, "current": { "status":"waiting" } }  # type Pod { PodSpec, PodReport { PodStatus }}
or
    { "spec": { ... }, "status": { "state":"waiting" } }  # yes, we just undid this
or
    { "spec": { ... }, "status": { "condition":"waiting" } } # type Pod { PodSpec, PodStatus { PodCondition }}
or 
    { "spec": { ... }, "status": { "currently":"waiting" } } # type Pod { PodSpec, PodStatus { PodStatusCode }}

Those are my final words on this.  I will not bikeshed further execpt to say that "Status" is OK as a group of data points, "State" is not.  IMO.  Please choose one of the above, a combination of the above, or something you like better.