Add more intelligent versioning to the Makefile

This removes the concept of a minversion and instead uses -ldflags at
compiletime to set Version to the output of `git describe`, which
produces either the current tag (if on a tagged commit) or the most
recent tag followed by the short form of the current commit
ID. Additionally, it describes the number of non-ignored files changed
in the working tree.
Ignore editor temporary files