Auto update

addresses most of #169 and #170.

Unsolved: vanilla go-update is unable to pull different version. it just compares binary checksums.
Because of this i left `ipfs update log` unimplemented. Maybe use github release tags for this?

To set up autoUpdate:
* create an account at [equinox.io](https://equinox.io/user/login) and download the release tool
* change  user, secret and app_id in  `cmd/ipfs/equinox.yaml` and in `updates/updates.go` update `const updateAppID`
* create keypair for siging with `equinox genkey --private-key equinox-priv --public-key equinox-pub`
* update `const updatePubKey` in  `updates/updates.go` with the contents of `equinox-pub` 
* push new release with `equinox release --config equinox.yaml --version 0.2.0`
the removal of the `} else {` means that now, after checking, if update fails, it will fail to check again until the next day, right?

Maybe, recording update check is fine, if we add a bool flag like "UpdateAvailable". `ShouldCheckForUpdate` then would check the time, OR that `UpdateAvailable == true`. (i.e. check again if last time we saw it was available).

This has the effect of nagging the user to update on every run once an update is avail.