Generalized types for ((call)|(let))/[ec]c to allow n-ary continuations.

The non-typechecker changes from PR679. With tests this time.
I don't think this file should depend on the type constructors. I believe that is why there was an indirection through trans  so that that dependency is not here.