Add version info to binaries

This adds the git tag or commit/branch to all Go binaries. The `version` package can be used to generate a string from this information.

The default `make` target should be used instead of running `tup` directly.

The `make dev` target uses static version information to reduce build time when iterating quickly (tup will rebuild all targets otherwise).

A `make clean` target also exists.
Should this not just test that `git status --porcelain` is nonzero? i.e.:

```
test -n "$(git status --porcelain)" && echo true || echo false
```