It was previously working in a false-positive state, where it would behave as
expected if you ran "make" from within a subdirectory of the git repo. If you
ran make anywhere else, at least diff-index would break.
Change -C to --work-dir to work on earlier versions of git.
Add "+" to the revision number if there are uncommitted changes.
Only rewrite the git_info.h if there are changes, so that make doesn't think the file has changed.