improve random contract generation

notably enable the generator to actually use things from the
environment but currently only when they are directly in the
environment so, eg:

   (-> (-> is-eleven?) is-eleven?)

can't be generated (since the contract system doesn't know
about is-eleven? and also doesn't yet know that it can call
the argument thunk)
improve or/c random generation and get rid of old, not-working
generation for the old-style -> contracts
revise error printed for kernel-/debugger-sent SIGSEGVs
fix clean-up handling for the main thread of a terminated place

This bug might be reposnible for the occassional crashes seen in
DrDr for the easter-egg test.

Merge to v6.0.1
racket/base: add `string-port?`
file/zip: recognize string ports as seekable
fix 'planet remove' commandline argument checking
Add tests for new letrec semantics.

Closes existing bugs because the old broken semantics is now right
because of undefined changes.

Closer PR 13303.
Closer PR 13333.
racket/draw: fix problem with rotated text, font substition, and kerning

Closes PR 14469
repairs to precision of `exact->inexact` et al.

Thanks to Neil T.!
speed up `inexact->exact`

Parse IEEE floating-point numbers directly.

Thanks to Neil T.!
win64: fix longdouble DLL
racket/gui Win32: fix use-before-definition problem for `choice%`

Closes PR 14475
Change test to use exact flonums instead of 0.1
I maintain planet
generalize the random contract generation so that it can exercise
a function to get more interesting values and then use those values
to guarantee it can generate things it couldn't before

For example, it can now generate a function with this contract:

  (-> (-> is-eleven?) is-eleven?)

without knowing what the is-eleven? predicate does -- instead it can
figure out to call the argument thunk and then pipe that result around
Remove code that handles #<undefined> in TR

TR no longer needs to handle #<undefined> because the value
no longer leaks out from uninitialized variables. However, uses
of uninitialized variables are not caught by TR (they are treated
like errors from the `error` function).
need CAS only for futures or places
configure: for BSDs, enable pthreads by default, but don't force enabled
fix wrong size for memset

Probably the assignments cover the structure, anyway.