[git] IDEA-132502 Set all elements at once to avoid too many table change events

(cherry picked from commit 74568115d07cc6884c2783359e39f5417a150a44)
[git] IDEA-132502 fix NPE

(cherry picked from commit 17c49ac715dfdb41f8015ea66789a895c4cb4f92)
[git] Fix non-ASCII paths unescaping problems

Fix GitUtil.unescapePath as proposed in PR#123: i is incremented in
the inner loop even after the octal part finishes => it should be
decremented back, so that next character is not missed. Add a test.
(https://github.com/JetBrains/intellij-community/pull/123)

However, it doesn't fix problems with unicode paths containing
diacritic symbols (in spite of PR#218 which proposes fix for
IDEA-132150). Such paths are always returned by Git in
octally-escaped NFD (decomposed) form, while on disk and/or in the
repository they can be stored in NFC or even non-normalized form.

Therefore make Git return unescaped paths by passing
-c core.quotepath=false to all commands.
This option is not supported for Gits older than 1.7.2 - they will still
receive escaped paths and use patched unescapePath(). Others will
receive those characters which are stored in Git database.

This won't fix the situation if a non-normalized path is stored to
the repository on Linux/Windows and then checked out on Mac (which
HFS+ automatically normalizes to NFC on read/write): the path on disk
won't match the path in repository.

But for other cases this fixes the following issues:
IDEA-84715, IDEA-116247, IDEA-132150

(cherry picked from commit 0273d29135e2fe1f9a9b10bf5c4a36bb41568083)
[git] IDEA-133652 Use "--" in git log commands to avoid branch/file confusion

(cherry picked from commit 1f216cabb778aa7cab1bc27d62b7240181177efa)
IDEA-132199 Fix Git get repo for python projects that are also installed in virtualenv

Cherry-picked from df799c78a4408c00af72ca9444b7c9fbb960dc46
A fix for IDEA-131190 Auto formatting formatting forwards but not backwards
(cherry picked from commit ccd028d) [CR-IC-6915]