ffi/com: repairs, including `mysterx' compatibility

Restore MysterX-style handling of parameterzied properties in
`com-get-property'.  It turns out that the original `com-get-property'
handles parameterized properties by allowing a list in place of a
property-name string, and that handling got lost in the re-write.

Fix the name of `com-get-active-from-from-coclass'.

Fix arity checking for optional arguments.

Closes PR 13603
Closes PR 13604
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.