Allow closures with free void variables

Not sure what should happen if all free variables are void, though.
Improve `clean-bytecode` make target
Add GHC.ST module
Load Control.Exception.Base by default again
Remove unused import
Improve treatment of pattern with void pattern vars

The existing code was too simplistic in its assumptions.  Still not
sure I'm covering all relevant cases.
Add very simple test for ST monad