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
make installers: give MSVC setup "x86_amd64" instead of "x64" by default

The "x86_amd64" mode seems to work more often, especially with
Visual Studio Express installations.