[Version Control] Improved Unit Tests and Progress/Cancel commands.

*Renamed protected variables to use proper naming standard.
*Setting Git author/email for repository so Blame can be evaluated.
*Actually cache the GitRevision when doing status.
*Fix ugly NREs when we don't have a monitor bound.