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 
But this doesn't make sense as a `goimports` change.  It's not "remote stuff" being pushed below, it's just other random stdlib imports.