maint: remove differences from gnulib regex code

These don't seem to be needed with GCC 4.8.2, and are making
maintenance harder.  If we need to disable warnings with older
compilers, we can add pragmas to the gnulib versions.  See
<http://bugs.gnu.org/16911#24>.
* gl/lib/regcomp.c.diff, gl/lib/regex_internal.c.diff:
* gl/lib/regex_internal.h.diff, gl/lib/regexec.c.diff:
Remove.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_tab_based_indentation):
Don't mention gl/* files.
doc: do not overpromise --ignore-case's behavior

* NEWS: Omit vague statement about titlecase that could be
misinterpreted, and is more trouble than it's worth.
* doc/grep.texi: Add @documentencoding.  Fix copyright range to
use endash not hyphen.
(Matching Control): Do not overpromise what --ignore-case will do.
Give examples of corner cases where the documentation does not
specify behavior.
build: update gnulib submodule to latest
grep: fix case-fold mismatches between DFA and regex

The DFA code and the regex code didn't use the same semantics for
case-folding.  The regex code says that the data char d matches
the pattern char p if uc (d) == uc (p).  POSIX is unclear in this
area; the simplest fix for now is to change the DFA code to agree
with the regex code.  See <http://bugs.gnu.org/16919>.
* src/dfa.c (static_assert): New macro, if not already defined.
(setbit_case_fold_c): Assume MB_CUR_MAX is 1 and that case_fold
is nonzero; all callers changed.
(setbit_case_fold_c, parse_bracket_exp, lex, atom):
Case-fold like the regex code does.
(lonesome_lower): New constant.
(case_folded_counterparts): New function.
(parse_bracket_exp): Prefer plain setbit when case-folding is
not needed.
* src/dfa.h (CASE_FOLDED_BUFSIZE): New constant.
(case_folded_counterparts): New function decl.
* src/main.c (trivial_case_ignore): Case-fold like the regex code does.
(main): Try to improve comment re trivial_case_ignore.
* tests/case-fold-titlecase: Add lots more test cases.
fgrep: fix case-fold incompatibility with plain 'grep'

fgrep converted to lowercase, whereas the regex code converted
to uppercase.  The resulting behaviors don't agree in offbeat
cases like Greek sigmas and Turkish Is.  Fix this by changing
fgrep to agree with the regex code.
* src/kwsearch.c (Fcompile, Fexecute):
* src/searchutils.c (kwsinit, mbtoupper):
Convert to uppercase, not to lowercase, for compatibility with
plain 'grep'.
* src/search.h, src/searchutils.c (mbtoupper):
Rename from mbtolower, since it now converts to uppercase.
All uses changed.
* tests/case-fold-titlecase: Add tests for this.