Add support for typechecking contracted functions
Add types and tests for racket/format
Add test case from Matthew for ac169edfcf
Fix for/fold typechecking on null accumulator

Closes PR 13259
Fix TR test regexp
racket/port: fix problem with `reencode-input-port`

For the case that a larger buffer is needed than provided for
a read, decoding should make progress as long as some bytes are
converted.

Closes PR 14607
document possibility of 'eps-bytes+bounds for file/convertible
support eps-bytes+bounds for picts
add the --dvipdf flag to scribble

This adds a new back-end pipeline for generating pdf to
scribble, with the hope that included picts (e.g., those
generated by Redex) will look better when viewed with
on-screen pdf viewers

Current problem: the descent adjustment is messed up,
as can be seen by this example program's output:

 #lang scribble/base
@(require redex/pict
          pict
          redex/reduction-semantics)
@title{}
@(define-language L
   (e ::= (e e) x (λ (x) e)))
@(render-language L)

ff@(text "f" '(italic . roman) 20)ff

x@(text "x")y@(text "y")
add note about --dvipdf to redex docs
fix default argument to #:convert-as-ps-not-pdf?
update the unix tests based on drdr's results, related to ac169edfcf
racket/draw: fix bounding box in `post-script-dc%` EPS output

Write the requested size instead of the actual bounding box
of the drawn image.
file/convertible: add 'pfd-bytes+bounds8 and many more

The 'pfd-bytes+bounds8 format can add extra padding around the image,
and the result reports the amount of added padding. This padding can
be used to include image output that it outside of the conceptual
bounding box, such as an italic glyph that extends beyond its
character's width.
pict: implement 'pdf-bytes+bounds8, etc. conversions

Also, add a `convert-bounds-padding` parameter that defaults to adding
3 units (= pixels, usually) on each side of a pict when converting
to a format that supports padding.

Combined with changes to Scribble to use the new formatting, the
extra padding solves the long-standing problem of rendering picts
and having an edge (especially the bottom and right) cut off due
to rounding effects. For example, see `file-icon` in section 7.1 of
the `pict` documentation.

The choice of 3 pixels is more or less arbitrary; it covers the
case of edge pixels and italic fonts for typical font sizes, but
it obviously won't cover all drawing outside of a bounding box,
as for the documentation example `(desktop-machine 1 '(devil plt))`.
scribble: use 'pdf-bytes+bounds8, etc.

Use 'pdf-bytes+bounds8, 'png-bytes+bounds8, etc. to convert images
for Latex/PDF and HTML output. The new conversions particularly
help with picts that draw text, since the baseline of the text
can be handled properly in HTML output.

The new conversion also helps hide the difference between a bounding
box and the "inked" area of a pict, since picts normally ink only
slightly outside the bounding box, and the default for pict conversion
pads the image with a few pixels/units in each direction.

Also, add a `++convert <fmt>` command-line option to select a
preferred target for image conversions. (This preference can be
overridden by the existing `render-convertible-as` style property
for HTML rendering.)
Have TR log regexp operations that use non-regexp patterns.

For consumption by Optimization Coach.
Improve speed of partitions
Change make-predicate/define-predicate to use flat-contract-predicate.

Closes PR 14610.
Add tests for generated syntax of static contracts.