[git] IDEA-115318 Clicking "amend" shouldn't revert what user has typed

* Remember the initial commit message.
* On "amend" select: substitute commit message with the message of the
  previous commit, only if user hasn't modified the initial message.
* On "amend" deselect: substitute commit message with the initially
  saved one, only if user hasn't modified the amended message.
(cherry picked from commit b9f77b8)
Merge remote-tracking branch 'origin/131' into 131
[git] IDEA-109511 Quick-fix of "Git Add" for tracked files.

The problem was introduced in 6aa542e: the common
ScheduleForAdditionAction doesn't know that there are VCSs which can
ADD not-unversioned files.

Correct fix would be to introduce some API which plugins could use to
specify if the file of given status can be added or not.
But the timing doesn't allow to do it now.

Therefore partly return to a separate GitAdd action, but this time
extend ScheduleForAdditionAction to follow the common process to add
files.
Let specify a function determining if the file status is suitable for
calling "add to vcs" on it.

This fix keeps IDEA-76670 & IDEA-104070 fixed, but reopens IDEA-98689.
(cherry picked from commit 645e5c2)
Use Condition instead of a BooleanFunction.

Relates to IDEA-109511 Quick-fix of "Git Add" for tracked files.
(cherry picked from commit 88f123d)