Fix types of bitwise-and and bitwise-xor.

Found with random testing.
Factor out grammar to generate well-typed terms with higher probability.

Allows us to test integer-specific functions.
Sometimes generate random integers.
Add random testing for complexes.

Fix a bug it found.
Re-enable testing of hyperbolic trigonometry functions.
Fix type of lcm.

Found using random testing.
Simplify type.
add contracts to the "with-" macros in redex/pict
fix a docs bug

(and change a case-lambda to a regular lambda)
Fix parsing of dotted rest when there is an expected type.

Closes PR 13646.
configure: libffi after pthread

On OpenBSD, for example, the libffi link test doesn't work until
"-pthread" is in $LIBS.

Also, make `configure' complain if `--enable-libffi' is specified
and linking to libffi fails.
Reimplement unboxing of complex division.

Add special cases to be consistent with untyped Racket.

Found using random testing.
Fix coercions from single-floats to floats.

Found using random testing.
Abstract unboxing of complex division.
Imitate untyped division more closely.

Found using random testing.
Increase timeout for TR random tester.
Fix type of sinh.

Found using random testing.
Fix type of tanh.

Found using random testing.
Fix another unsafe optimization of unsafe-fxmodulo.

Found using random testing.
Fix optimization on exp of complex numbers.

Found using random testing.