redex: refactor benchmark plotting

- add sane interface for points plot
- add the line plot
fix bitmap rotate/flip interaction

closes PR 14585
adjust render-metafunction docs
redex: adjust benchmark contracts and provides
Readline-to-Racket: Rename file to mzrl.rkt to rktrl.rkt
Make type of make-vector more precise.

Before that, ((inst make-vector Natural) 10) would return a (Vectorof
Integer) which is bad.

Thanks to Alexander Knauth for the suggestion!
Make TypeFilter and NotTypeFilter have a Path as a subcomponent.

This changes Filters to have a Path as a subcomponent instead of having
the list of Path-Elems and name-ref/c separately. This is part of the
rework to have better object support.
optimizer: add missing "else"

Thanks to David Vanderson
ignore .sl.cache files

Created by `msbuild`?
win32: support symbolic links

Windows supports symbolic links in Vista and later.
win64: fix fixnum-to-extfl conversion
windows: fix symbolic link handling to match the OS

Windows parses relative-path links with yet another set of rules ---
slightly different from the many other existing rules for parsing
paths. Unfortunately, a few OS calls don't provide an option for
having the OS follow links, so we have to re-implement (our best guess
at) the OS's parsing of links.
distro-build: allow any string for `#:vc`
unbreak build

I have no idea whether the change is generally right, but it allows
the build to complete and DrRacket to start.
Update web page news.
windows: add test for links with foward slashes
optimizer: reorganize & generalize dropping of ignored operations

The optimizer was willing to convert `(pair? (cons w (random)))` to
`(begin (random) #t)`, but not `(car (cons w (random)))` to
`(begin (random) w)` because the `(car (cons ....))` transformation
required simple ignored arguments. Put the treatment of ignored,
non-omittable arguments of a dropped operation in one place. Also,
recognize expressions within `begin` whose results will be ignored.
optimizer: optimizes the argument of not in a Boolean context

This enables more reductions, for example: (not (if x y 2)) => (not (if x y #t))
optimizer: boolean conversion on app of predicate-matching primitives
optimizer: recognize that arguments to `void` are ignored