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 
Would it be better if we support `--clobber=true` / `--clobber=false` for both platforms regardless, and just have `darwin` default it to `true`?