clean up initialization of the teachpacks in an empty repl

In more detail, the way the initial namespace was being set up was
different than the way that you get if you just hit 'Run' on an
empty program. So change the initial namespace creation to more closely
mimic the way an running an empty program works.
fix timeout computation in the REPL io

In the case that the flush queue was empty, the first byte that
comes it would appear to have come from a long time ago and
thus get flushed immediately.

Instead, when the first byte comes in, we restart the timer at that
point, intead of holding the old value
do a better job of keeping the err/out ports IO in the right order

... in the case that IO happens during the 'first-opened' method,
e.g., during teachpack running in an empty REPL
Re-enable Values and cgen/seq, and fix contracts on substitute.

After longer testing confirmed that this was just to strict contracts on
substitute.
Unset contracts enabled by default for TR.
Make subst-gen not duplicate call to values.
Remove unused code in subst-gen, and remove internal error.
Simplify constraint->type.
Remove unused variable in constraint struct.
repair and streamline VS 2008 projects
MzCOM: avoid the ATL framework

Building MzCOM without ATL means that Visual Studio Express --- or
other free compilers, in principle --- can build MzCOM. It also cleans
up and simplifies the build.

The non-ATL implementation is based on "Com in Plain C" by
Jeff Glatt, and uses a lot of his code (with instructive
comments intact).
add -z flag

for zeroing out the margins when printing a slideshow
Add section on separate compilation to reference
Make unfold use typecase instead of subst.
minor cleanups to contract-random-generate's API