commit: correctly detect the start of the commit message

The end of the header is signaled by to consecutive LFs and the commit
message starts immediately after. Jumping over LFs at the start of the
message is a bug and leads to creating different commits if
when rebuilding history.

This also fixes an empty commit message being returned as "\n".

---

The empty message as "\n" seems to have been there quite a while, but it doesn't look like anybody's noticed. It's presumably as rare as having leading LFs in the commit message, but we still need to return the actual contents of the message, or we run into problems when trying to recreate a commit.