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).
Sure. I did this because you claimed util for use by api, and then I had no place to put my etcd helper object. I don't really care where it goes, but it definitely has to use api.