Reflow commit messages in diff view

This aims to reformat commit messages in the diff view to look better
when presented in a GUI such as gitg. Hard-wrapping is undone so that
lines are soft-wrapped naturally in the available space, while trying
to preserve intentional formatting such as lists, indentation and
paragraphs.