There was a strange interaction between git rev-parse and git diff-index when run in a batch file.
Reworked to change the way rev-parse command was handled.
Also added check to make sure git.exe was in the path.
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.