[git] IDEA-81563 Correctly identify Git root for submodule changes

When the submodule is changed in the super-project, the root of this
change is this super-project, not the submodule root.

In particular, this led to exception when trying to merge conflicts
when one of conflicts was the submodule.

(cherry picked from commit 169bf44357db5d28833ea4a74767e9eb5d6849a9)
[vcs] IDEA-117448 Don't read & store patch text until really needed

ShelvedChangeList doesn't need patch text itself to provide the changes,
this texts are loaded and parsed in ShelvedChange#getChanges when needed

=> let read patch files in "ignore content" mode & use this mode
when ShelveChangeLists are loaded.

(cherry picked from commit d9b886f191e2ed5064149ee30adf335361c022fc)
[vcs] IDEA-117448 Fix default PatchReader value

(cherry picked from commit cdddd873d9ae73f5a0c8f26214f78d1dcb325894)
[git] IDEA-134721 Don't let fixup at the first position in rebase editor

(cherry picked from commit 9ef51730195a8ab0a30d510b4aa54518afe6ecef)
[git] IDEA-134721 Better detect rebase failures

It can start with e.g. "Cannot fixup".

(cherry picked from commit 2abf5c025566d05ceb64d4f858ded63a44897e37)