Fix error in generalization in which some variables would escape their
rank. Problem was that young variables were not all being marked as
young.

This resolved a soundness issue described in the post on
"How OCaml type checker works".
Remove some debugging stuff and generally clean up the code.
There was one potential error in which a debug needed to be a liftIO,
the computation it performed was not optional.