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 
As a side note, this is where using `uname -m` as a URL component completely breaks down.  For example, on my Pogoplug, I get `armv5tel`, but `armv5el` is also very much a thing (ie, the bits after the number mark supported features).