[tests] Create individual temp directory for each test run

To avoid problems when the previous test run is terminated abnormally
and therefore leaves the dirty temp dir.

Introduce UsefulTestCase#shouldDeleteTempFilesOnTearDown
and override it in GitCucumberLightProjectFixture instead of
overriding shouldContainTempFiles(). Thus temp directory with a random
suffix will be created for each test run, but will be deleted only
on application exit.
[git] Make Git HTTP authentication testable and write tests

* Introduce interface GitHttpAuthenticator to handle authentication
  requests from Git.
* Rename the existing implementation to GitHttpGuiAuthenticator.
* Instead of directly creating the instance of GitHttpAuthenticator
  in GitHandler#start, retrieve it from the GitHttpAuthService.
* Let GitHttpAuthService be abstract and extend it by the default
  implementation GitHttpAuthServiceImpl (returning the new instance
  of GitHttpGuiAuthenticator, as previously), and by the test
  implementation GitHttpAuthTestService that allows to specify custom
  authenticator.
* GitCheckoutProvider: make the synchronous method doClone public so
  that it could be called from tests. Use Notificator to display
  notifications for unification and ability to check notifications
  in tests.
* Write a Cucumber feature git-http trying to clone from http url.
  Use hardcoded values for url, username and password for now.
* Define the steps in GitRemoteSteps. Start clone on a pooled thread
  so that the password could be supplied by the next step which was not
  executed yet.
* Use custom RPC port for the WebServerManager to avoid searching for
  free ports (default port will be occupied by the working IDEA).
[git] HTTP: fix password dialog cancellation; store password manually

* IDEA-102862 If the dialog was cancelled, return "" instead of null,
  because XML RPC doesn't understand nulls.
* Mark all getPassword() as @Nullable to avoid similar problems
  in future.
* Remember the entered password into myPassword to store it later
  if authentication succeeds.
  The password is stored anyway in
  PasswordSafePromptDialog#getPassword(), but it is incorrect behavior
  that will be fixed later.
[git tests] HTTP test: increase timeout value

Usually it makes in about 700 ms (on my computer),
so when there is a slowdown it can take longer than a second.
10 seconds should be enough for anyone.