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.
Yes, I think it makes sense for extensions of an object to inherit the ResourceVersion of the parent object. They should be stored in the same blob in etcd.

Yes, I could imagine using Annotations to record provenance info, such as ResourceVersions of progenitors (e.g., of pod template in spawned pods).

I'll again bring up #1184: I'd like to return ResourceVersion from all operations, including lists and errors, esp. 404, 409, 410, 412. What object(s) do we return upon errors, such as 404?