racket/gui: fixups for mod3-5 event additions

Move new initialization arguments to the end to avoid backward
incompatibility, add fields to `module-event%`, and include history
notes in the documentation.
Minor doc fixes in Reference and Inside
racket/gui: add [set-]undo-preserves-all-history[?] to editor<%>

This change allows undo configuration of individuals editors to
Emacs-style undo (in addition to the 'GRacket:emacs-undo global
preference that is read on startup).

Also, fix a bug in Emacs-style undo that dates from the port of
the editor into Racket.
fix another potential overflow in fixnum `expt`

This commit is a follow-up to e96d592735. The bug fixed this time is
more subtle, because the overflowing computation is never used, but
that doesn't matter in terms of avoiding undefined behavior.

Thanks for Pascal Cuoq and John Regehr.
unix-style install: preserve build stamp

Instead of preserving specific configuration entries, it's probably
better to preserve all of them that are not specifically replaced.
I'm going with the simpler change for now, though.
Check kw function definitions w/o type annotations

Instead of trying to check the expansion as-is (which
always fails), check the core function and reconstruct the
keyword function type.

Closes PR 11253
Handle kw λs when useful annotations are missing

Closes PR 14322
Make optional arguments work for kw lambdas too
Restructure and incorporate feedback