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.

Closes #308.