Add pre-commit hook running gofmt

This pre-commit hook runs gofmt on all staged .go files.  If any syntax errors are encountered they are printed to stdout and the commit aborted.  Any non-standard formatting is changed to the recommended style.

The Go emacs mode, and I assume those of other editors too, are imperfect in terms of indentation.  Thus running gofmt on all files is good practice.