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.

The pre-commit hook is activated by running:
```bash 
ln -s ../../pre-commit.sh .git/hooks/pre/commit
```
in the repo.