Do not blindly ignore Merge messages when generating .changes

Some Merge messages were being ignored, with the matching commit not
being reached because that commit was older than the latest known
change. This lead us to miss quite some bits of history. Instead, also
parse Merge messages, and ignore matching commits.

Also, put list of changes in chronological order in .changes: the
ChangeLog is in reverse-chronological order, but it's more readable to
have chronological order in .changes (because there's no timestamp there
for each commit).