Version fixes

Here are some changes to improve handling of Kubernetes versioning.
1) Now all commands are able to parse a -version flag.
2) Version generation from git is more robust and more complete.

So, for example,
```
// String returns info as a human-friendly version string.
func (info Info) String() string {
...
```