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 
Very wishful thinking, and will likely be very wrong (especially since it doesn't even account for `GOARM`, let alone the actual ARM version of the current system).  Please remove and add a `default:` case that returns an `error` like was mentioned above. :wink: