Nicer commit msgs

Hi again. This series contains fixes for many issues in pull request #1420.

 * You should no longer experience "red coloring" on new lines
 * A potential crash in the color-change logic has been fixed
 * The empty-second-line logic is improved
 * Word-wrapping logic has been refactored, simplified and improved
 * FormatAllText should no longer be able to recursively call itself indefinitely

Known issues:
 * If you type a line that is longer than the horizontal size of the commit message text box, then you might experience wrong coloring when the control does its hard wrapping of text. Please offer suggestions as to how we should solve this

And obviously, please feel free to review, test and comment on these changes :)