Remove dead code after error in if forms

Reduce (if (error 'e) x y) ==> (error 'e)

Take care of the type information and clocks when only
one branch produce an error.
Remove dead code after error in with-continuation-marks forms

Reduce (with-continuation-marks (error 'e) x y) ==> (error 'e)
and (with-continuation-marks x (error 'e) y) ==> (begin x (error 'e))
More module tests (*)