Simplify Infer monad to use StateT directly
Exposed typeInference API exposes Infer monad action
Scheme.generalize -> Scheme.make

generalize no longer needed because "let" cannot be supported with
inference resumptions.

Does not filter constraints/substs.
Remove dead code
Infer.typeInference does not make Scheme. Separate API exposed instead.