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 /version to server and check it in client.

Will help detect client/version skew and prevent e2e test from passing
while running a version other than the one you think it's running.
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."
Fixing golint warnings
Merge pull request #695 from danmcp/fix_golint_warnings

Fixing golint warnings
Revert "Revert "Add support for stopping a proxier.""

This reverts commit 19beaf71b576b557f65960ec35086b9580a91221.
Fixing typo
Merge pull request #698 from danmcp/fix_typos

Fixing typo
Merge pull request #627 from lavalamp/fix

Add /version to server and check it in client.
fix misspelling
third_party: update go-dockerclient

math.MaxInt64 represents 8 exabytes, which is a good limit for memory.
Also, this is the type used by Docker, so it's not possible to get any
value bigger than math.MaxInt64 as memory limit (both ram and swap) on a
Docker container.

Relevant discussion at #589 (more precisely,
https://github.com/GoogleCloudPlatform/kubernetes/pull/589#issuecomment-50640605).
Improve testing reliability
Merge pull request #701 from SebastianM/misspelling

fix misspelling
Split watch