Cascade rethinks when the state changes at EOL.

This results in the whole buffer becoming a comment and then unbecoming a
comment when one starts typing a comment, so I'm not sure that this is the
perfect solution. But we'll live with it for a while and see how it goes. It's
certainly "correct".