Refactor MergeMessageParser.TryParse() related tests
Make MergeMessageParser.TryParse() detect invalid merge commits

A commit is said to be a "merge commit" if it bears more than one parent commit.