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
bump(github.com/google/cadvisor): bdd574b728e8a1e5eb08649d631197620dd09650
Add a method to list replication controllers
Update the entire cAdvisor package. There is a version mismatch issue
which cause #707
Merge pull request #713 from dchen1107/restart

Fix #707
Fixed FakeKubeClient in kubecfg_test
Merge pull request #719 from csrwng/list_replication_controllers

Add a method to list replication controllers
Etcd watcher verification

To make sure the etcd watcher works, I changed the replication
controller to use watch.Interface. I made apiserver support watches on
controllers, so replicationController can be run only off of the
apiserver. I made sure all the etcd watch testing that used to be in
replicationController is now tested on the new etcd watcher in
pkg/tools/.