Add support for client binary on upgrade

Went ahead and implemented this, looking for feedback, how do those file permissions look to you?

ping @SvenDowideit @tianon 
Since we don't use this result outside the `if`, I think this would be more "canonical" as:
```go
if err := os.Chmod(path, 0755); err != nil {
    return err
}
```