grep: with -E, unmatched ')' matches itself

Problem reported by Nathan Weeks in: http://bugs.gnu.org/17856
* src/grep.c (Ecompile): Also specify RE_UNMATCHED_RIGHT_PAREN_ORD.
* doc/grep.texi (Fundamental Structure), NEWS: Document this.
* tests/ere.tests: Add a couple of tests for this.
* tests/spencer1.tests: Fix exit status.
maint: generate distributed THANKS from VC'd THANKS.in

* Makefile.am (THANKS): New rule.
* THANKS.in: New file.
* THANKS: Remove.  Now it's generated from the combination of
THANKS.in and git logs.
* .mailmap: New file.
* cfg.mk (sc_THANKS_in_duplicates): New syntax-check rule, from
coreutils.
* .gitignore: Add THANKS.
* thanks-gen: New file, from coreutils.
doc: update HACKING

* HACKING: Update from coreutils.
maint: split long lines, and enforce the 80-column limit

* cfg.mk (sc_long_lines): New rule, from coreutils; exempt tests/*
* src/grep.c (usage): Tweak -F wording to shorten a line.
Correct grammar in a comment.
Split the --exclude-file=... description to fit within 80 columns.
Use emit_bug_reporting_address, eliminating another long line.
* src/dfa.c: Split long lines.  No semantic change.
* doc/grep.texi: Likewise.
* tests/include-exclude: Split a long line.
* tests/backref: Split long lines.
* tests/empty: Likewise.
* tests/fmbtest: Likewise.