[git tests] prepend working dir name to the executed command

To simplify reading of the log (since log entries can appear not
exactly in the same order as they are told to be printed to the log).
[git tests] remove unused methods
[log] simplify: use Collections.min
[git] Don't convert paths to uppercase: compare them right way instead
[git] Less logging: index file changes a lot
[git] remove unnecessary check for null
[git tests] shorten test names

* test name is used in application and project folders
* Introduce one more shortenText-utility method to let specify
  arbitrary ellipsis symbol (to avoid "..." in directory names not to
  confuse any FS or Git).
[git] IDEA-127472 Correctly checkout from diverged branches to common branch + tests

* Before branch operation starts, remember current branches for each
  repository, without assuming that the repositories are on the same
  branch. Use proper branch for each repository during rollback.
* Simplify some user messages in a couple of places to avoid forming
  complex messages like "branch A in repository B", etc.
  However, use such complex message format to notify about merge result.
IDEA-112011 add shortcuts to popup for changed range
try to reuse existing Ranges from LineStatusTracker in formatter

this will remove cases, when lines, highlighted as changed, are not the same, as the ones that will be formatted (due to possible non-optimal ranges from LST)
[git tests] move nullifying fields to the finally block
[git] Fix already disposed EA-58537
NPE
IDEA-127068 better fix
reverted 6dc93a1 "skip binary files earlier" because it broke Find in JDK sources
make fields final
NotNull, cleanup
optimisation: getMaybeSuperClassSubstitutor() to avoid traversing class hierarchy twice
cast from Short to char is prohibited
check for validity