Limit diff highlighting within emails to a region.

This implements a guard to help detect the beginning and end of a diff
region in emails.  We trigger on some common text leading up to the
diff, and then end the diff when we see an empty line or git's end of
diff marker.

Since I shoved everything into a region, it did require setting up
highlighting for the context lines within the diff to keep from
inheriting diffHeader's coloring.
Make diff highlighting in emails more precise.

- Use "matchgroup" only on select "end=" conditions, allowing the other
  contained matches to handle individual highlighting.

- Make each contained match cover the end-of-line newline character so
  that all characters are matched for well-formed diff hunks.  This
  allows the use of end="." for the whole region, causing a malformed
  diff hunk to lose highlighting and make it easier to see where the
  hunk became invalid.
Expand abbreviated keywords.