Decode/Encode everywhere

Necessary for Brendan's upcoming api versioning PR. This is a fixed version of #567.

All types stored in etcd are now API objects.
>This means I made an api.ContainerManifestList, and added a JSONBase to endpoints (and changed Name to JSONBase.ID).
Sorry, I was implying that from the perspective of avoiding breaking old kubelets that cannot decode the old value (since arguments hadn't settled on breaking old kubelets).  If we're willing to break old kubelets anyway a rename at this time would make sense.  If we aren't willing to break old kubelets we'd need to write to two locations anyway.