Fixed undetected working directory in root directory (the additional "dir.rfind" in the while condition stopped the loop *before* e.g. "C:" has been reached)
Fixed performance issue when executing IsValidGitDir on an UNC path (now we stop when reaching the root directory (provided by PathIsRoot), like "\\server\share")
Merge pull request #2306 from ulrichb/IsValidGitDir_UNC_path_bug

Shell Extensions: IsValidGitDir UNC path performance bug fix (resolves #2250)
Remove ANSI sequence from the captured output lines
Stop runaway git process creation under MS Windows

https://github.com/gitextensions/gitextensions/pull/1286/ tried to fix
this problem, but the solution doesn't work under MS Windows 7.

Module.IsRunningGitProcess() invokes "ps" to try to look for git
processes, but under MS Windows 7, the only two processes that are ever
seen are "/bin/sh" and "/bin/ps", i.e. the processes involved with the
"ps" request itself.  Therefore, the test fails, and if MS Visual Studio
builds in the same git repo being watched by Git Extensions, an
explosion of git processes grinds the machine to a halt quickly.

I don't know how to fix Module.IsRunningGitProcess() under MS Windows;
it seems that the existing technique isn't applicable to MS Windows, and
isn't repairable.  Until a better solution comes along, I simply
restored part of the solution that was removed by the above-referenced
pull request.  This solves the problem for me.

I've only noticed this with one particular repo, and with MS Visual
Studio 2012.  It seems like I should have seen this long ago.
Go figure.

(cherry picked from commit c1f8ee7b65019fe7596a7d71fd4ad750043d6b53)
(cherry picked from commit a893525df7524b6a78bdafc23ed40a9778cd49d2)
Cover the case when update ends with error.

(cherry picked from commit a2718181ce7bf5c04423966c57f049b3b5ddf4c5)
Fix #230 : Don't spawn another git status if the previous one is still running

(cherry picked from commit 8b47b8c76ec1ebe9668051f3175bb31bd8289d68)

Conflicts:
	GitCommands/Git/GitModule.cs
Don't run ps on windows, since it doesn't work as expected.
Merge branch 'release/2.47' into release/2.48

Conflicts:
	GitCommands/Git/GitModule.cs
Merge pull request #2345 from mnaoumov/fix-1313

Remove ANSI sequence from the captured output lines
Merge remote-tracking branch 'origin/release/2.46' into release/2.47

Conflicts:
	GitUI/FormProcess.cs
Merge branch 'release/2.47' into release/2.48