Add better support for functions that return Nothing. 

This includes a better type for call/ec. We should consider copying call/ec's type to call/cc too.
Inference could be better to support this without inst:
((inst call/ec Integer Integer Integer)
 (lambda ([f : (Integer Integer -> Nothing)]) (f 0 0)))