Revert "Revert "Add support for stopping a proxier.""

This reverts commit 19beaf71b576b557f65960ec35086b9580a91221.
Add custom conversion function system.

As an example, demonstrate how Env.Key's deprecation ought to work.
Slightly pause on requests to allow most to finish

Currently, every write will result in a 202 (etcd adding a few
ms of latency to each request).  This forces clients to go into
a poll loop and pick a reasonable server poll frequency, which
results in 1 + N queries to the server for the single operation
and adds unavoidable latency to each request which affects their
perception of the service.

Add a very slight (25ms by default) delay to wait for requests
to finish.  For clients doing normal writes this reduces the
requests made against the server to 1.  For clients on long requests
this has no effect.  The downside is that http connections are held
on to for a longer period in high write loads.  The decrease in
perceived latency from the kubecfg is significant.
Fixed tests.
Test both directions of the conversion.
Add a comment to tickle travis.
Merge pull request #672 from lavalamp/customConversionFuncs

Custom conversion funcs
Merge pull request #706 from brendandburns/proxy

Revert the revert and fix tests.
Add RestartPolicy to Pod and PodTemplate
Merge pull request #691 from dchen1107/restart

Add RestartPolicy to Pod and PodTemplate
Merge pull request #683 from smarterclayton/slightly_pause_on_return

Slightly pause on requests to allow most to finish
Handle -version flag on all commands

Tested: Passed -version argument to kubelet (and all other binaries):
  $ output/go/bin/kubecfg -version
  Kubernetes version 0.1, build 6454a541fd56

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Improve generation of version information from the git tree

Detect whether the tree is dirty and append a "-dirty" indication to the
git commit (common practice with other repos, e.g. kernel, docker.)

Properly handle the case where a git tree is not found (e.g. building
from archive.)

In the sed expression, look for the variable to be updated
(commitFromGit) instead of hardcoding a line number.

Tested:

- Built from a dirty tree:
    $ output/go/bin/kubelet -version
    Kubernetes version 0.1, build 2d784c684c75-dirty

- Built from a clean tree:
    $ output/go/bin/kubelet -version
    Kubernetes version 0.1, build 505f23a31172

- Built from an archive:
    $ hack/build-go.sh
    WARNING: unable to find git commit, falling back to commitFromGit = `(none)`
    $ output/go/bin/kubelet -version
    Kubernetes version 0.1, build (none)

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Merge pull request #714 from filbranden/version_fixes

Version fixes
Allow omitting -machines flag in apiserver when -cloud_provider and
-minion_regexp are specified because it is eventually overwritten by
-minion_regexp.
Merge pull request #716 from yugui/fix/machines-flag

Allow omitting -machines flag in apiserver