IDEA-96528 Darcula: Hot keys in Tip of the Day are hardly visible
[git tests] Wait for pending tasks to complete

* future.cancel won't interrupt the thread (and even if it would, the
  underlying Git process won't be interrupted).
* So let's just give the pending tasks a chance to complete
  (with a generous timeout).
[git] GitHandler: fix cleanupEnv

If environment was cleaned up, don't do anything.
[git] DRY (define constants), protect against NPE (flip equals)
[git] Fix method signature

setLastSuccessful doesn't return any interesting value,
and it is never used => make it void.
[git] unwrap the AtomicReference: variable can be modified.
[git] refactor-simplify

Pass constant params to the constructor instead of overriding methods
.
[git] Marker interface for Git external applications: ssh and askpass
[git] Improve synchronization in GitXmlRpcHandlerService

* Instead of synchronized methods use synchronized blocks.
* Script file generating should have a separate sync block:
  this operation is independent from the handlers-stuff.
[git] Further simplify GitXmlRpcHandlerService

Move the handler name specification to the constructor.
[git] Simplify XML RPC handler keys generation

No need in taking a random key, a counter is good enough,
since everything is synchronized.
[git] Fix GitRootScanner disposing procedure.

* Don't schedule new requests if the alarm has already been disposed.
* Don't cancel all alarm requests on dispose, since it is already done
  in Alarm#dispose().
* Since GitRootScanner has nothing to dispose anymore,
  it now can be not a Disposable.
[git] Minor GitRootScanner refactoring

Calling "new GitRootScanner(project);" looks a bit weird.
Let's make the constructor private,
and call static GitRootScanner.start().
[git] Don't even start the roots scanner in tests.
[git tests] Return the WebServerManager to disabled state on tearDown.
Better English
Actual and expected assert values swapped  in testDiffForDir.