Checking for updates

This PR makes `ipfs` reach the Github API endpoint for the list of this repo's git tags on every run. It then attempts to read the tag names as `semver` version labels and compares them to the running one (defined as a `Version` const literal in `cmd/ipfs/version.go`).

If the running version is older than the most recent available, the error message is shown (suggesting strongly to update) and the program exits.

This behaviour can be changed with `updates.check` flag in the config file. `ignore` and `warn` values are supported. 

Please also note the [related issue](https://github.com/jbenet/go-ipfs/issues/30).
should print a short warning if `config.update.check == {error, warn}`. maybe:

```Go
log.Error("update check: error connecting to api endpoint: %v", err)
log.Warning("update check: could not reach api endpoint. %v", err)
```

`log` goes to stderr, so doesn't pollute stdout. Could use `u.PErr` for the second if the full log format is too much on the end user.