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).
Also, you dont have to specify the lower case tag names, if your struct field is "Test" and in json its "test", go figures it out just fine.