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.
Copying @thockin's comment from https://github.com/smarterclayton/kubernetes/commit/d695810e1ca5419c02b86db14243ffe3113f58b4: Is it approriate to put comments like "This is the type POST'ed when creating a Pod" and "This is the type returned when GET'ing a Pod" on these structures? It sure would help comprehension.

I'd say yes, though that's technically some wrapper around PodSpec.

We should decide what we want to call outlined DesiredState and CurrentState structs, and be consistent about it, across all objects, not just pods. Spec and Status are ok with me.