Allow setting of git_commit, version, and dirty via shell varables

This is particularly useful if building from a tarball instead of from a
checked out git repo (as all Linux distributions do)
This would cause the script to exit 'early' is you build from a tarball and don't give git_commit because of set errexit

That's the reason I added the || true to the end of each git command, so we would get to the end and echo what we knew about rather than just exiting...

It sure looks a lot nicer though....  I could turn off errexit around each git call, which is kinda, ewww