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).
Yes, it's two schema changes in etcd (Endpoints changes, too).

Hm. That may be a good idea. If we had the reconciliation loop that I wanted in apiserver, it wouldn't be a problem, but we don't. Let me think about this while I grab lunch.