racket/gui: double-check size on attmpt to set editor scroll

A scroll request could fail if a resize notification is still
in flight (i.e., queued but not yet executed), so double-check
the size on a scroll request.

Closes PR 13582
file/untar: handle unknown extensions by skipping

Also, add/improve logging.
file/untgz: allow extra bytes after tar content

Closes PR 13641
Closes PR 13644
Changed normalize-arity to coalesce arity-at-least with adjacent numbers.

For instance, (normalize-arity (list 1 (arity-at-least 2))) now produces
(arity-at-least 1).  The implementation and the tests for normalize-arity both
reflect this change.  The randomized tests now also check that the output
represents the same arity as the input.
Re-provide normalize-arity from racket/function.
Added documentation for normalize-arity.
Moved normalized-arity?, arity=?, and arity-includes? into racket/function.
Documented normalized-arity?, arity=?, and arity-includes?.
Removed unnecessary duplication of normalize-arity.
Updated contracts for arity-related functions.

Added contract checking to arity=?, arity-includes?, and normalized-arity.
Removed contract checking from normalize-arity to make it a total predicate.
Updated documentation for normalize-arity to reflect this change.