Fixed a bug in `values` within file lazy.rkt.
The issue was that when `values` was used with a single input, that input was being forced too early.
Now code such as:
(! (letrec-values ([(x) (values (list y))] [(y) (values 1)]) (car x))  )
should produce 1 instead of #<undefined>.

Some simple test cases were also added.
in lazy: separate values tests; add more tests
Fix _date to allow dates before 1970 year
ffi/unsafe/com: convert to `date*`, document limitations

Merge to v6.1 along with 7d65ee6127.
Initial implementation of struct-type contract generation.

Currently errors on all reflective access to struct types.
Remove defined-ness checks in insert-large-letters.
add contracts to the *-append pict functions
add contract to cellophane
use simple-form-path instead of normalize-path

in the code that decides what to put in DrRacket's pop up
menu that opens file dialogs for the subdirectories of
the place where the current file is saved

closes PR 14634
JIT: fix array-size expression that is handled badly by xform

This bug (in xform, really) appears to be responsible for recent "JIT
buffer overflow" crashes. It could also cause other memory-corruption
crashes.

The bug could be triggered by any program that uses operators like
`+`, `<`, and `bitwise-ior` on more than 2 and less than 6 operands
(which is a lot of programs), but only if a certain allocation and
GC pattern happens at just the right time (which is why a crash was
relatively rare).

Merge to v6.1
xform: fix bad parsing of array sizes

A size expression N+M for a literal integer N was parsed as just N.
Report an error when that case happens (since it's difficult to
handle) instead of mishandling it.

Merge to v6.1
fix drracket's stacktrace handling in the case that something strange
shows up as the source field in an exception record
Rackety
at-exp and scribble: adjust reader to compose better with readtable extensions

The `at-exp` reader now delays picking up the current readtable until
`read`/`read-syntax` is called. Also, it uses the new 'dynamic configuration
of readers for the command and datum parts of an @-form, which delays a
decision of readtable on each part until reading the part.

Thanks to Alexander Knauth for sorting out pieces of the puzzle.
Scribble Latex/PDF: fix quote and backquote rendering

When text is literally a quote (ASCII 39) or backquote (ASCII 96),
then render it in a way that prevents LaTeX from converting to
curly variants.
scribble: fix documentation for `tt` and `racketfont`

The `tt` and `racketfont` functions treat their arguments strangely,
applying styles only to immediate strings and symbols.

Add `racketplainfont`, which is a non-strange version of `racketfont`.
add contract-correct caveat to contract violation error messages
optimizer: add types for propagable expressions

Currently the optimizer remembers the type of local variables,
but not when they are propagable (for example (lambda ...)).

Remember also the type of these variable,
in case they are used without propagation