Use Decode/Encode in etcd_tools
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 -> JSONBase.ID).
Add some initial validation logic.
Merge pull request #678 from brendandburns/fix

Add some initial validation logic.
Add support for stopping a proxier.
Incorporate new types into versioned api system.

* Made externalize/internalize generic to prevent boilerplate.
* Add fuzz testing.
* All objects pass fuzz tests now.
* This turned up some things we'll need to fix eventually. Left TODOs.
Merge pull request #571 from lavalamp/master

Decode/Encode everywhere
Merge pull request #682 from brendandburns/proxy

Add support for stopping a proxier.
Revert "Add support for stopping a proxier."
Merge pull request #693 from GoogleCloudPlatform/revert-682-proxy

Revert "Add support for stopping a proxier."
Split watch
Split async
Split operations test
Split index
Split interfaces
Split minion
Shorten variable name
Simplify helpers
Move prefix methods
Rename methods and move parseTimeout