Proposal: Separate desired and current states

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

Only look at the second commit, the first is just to get a nice diff from v1beta1.
I'm opposed to adding more kinds of statuses here. More nuanced information needs to go elsewhere.

I agree a Running pod should never revert to Waiting. It seems like that would be easy to ensure if we saved the status.

I don't know how to interpret "Worst of".

Transitions:
* Waiting->Running: We could/should install all images, then start all containers. Once images are installed, I think we should transition to Running/Active. At that point, we're not waiting. The containers may be broken, but that's not waiting.
* Running->Terminated: All containers need to be permanently dead to reach Terminated, IMO. One container running is Running. The restart policy needs to be taken into account here to avoid race conditions: all containers temporarily being down shouldn't transition a pod whose containers should always restart to Terminated.

Meta-question: Is this the right place to be discussing this? Isn't there a more appropriate PR or issue?