fixed a compilation problem
fixed a typo
Take author/committer separately

This works better than the previous design for several reasons:

- in typical usage (such as GitSCM), the part of the code that configures these things is very different from the parts of the code that make git operations like commit/merge.
- git-commit is not the only only operation where the committer/author settings matter. For example, git-merge creates commits, too.
Fixed compilation problems