The old RawMessage implementation effectively brute forced the initial
processing of a comment message by breaking it down into lines, and
grouping them into paragraphs.
This is useful, but, we actually only need the first paragraph, the last
paragraph, and then everything between. So there's no need to break down
the message into each paragraph.
In theory, the Buffer implementation is more performant than RawMessage
was, but most importantly I think it will be easier to work with it.
The NewRawMessage function returns a RawMessage struct, which has broken
the given commit message down into separate lines, and also grouped the
lines into paragraphs.
This should make it easier to implement proper conventional commit
parser, linter, and formatter.