Don't define commit-mode-map as a constant

Mode maps are open for modification. It's weird to mark them as
constant.

define-derived-mode internally defines 'git-gutter+-commit-mode-map'.
So use setq instead of defvar.
Use concat instead of format
Support the latest git-commit-mode

Many thanks to Akinori MUSHA for providing a first draft.
Improve compatibility with Magit.

Refresh files that Staging by Magit.
 - `git-gutter+-magit-stage/unstage-refresh`
 - `git-gutter+-magit-stage/unstage-hook-func`