Undo the fix for Trac #3772 and do it a new way
The main idea is that I'm now treating a single-method dictionary very much like a multi-method dictionary. In particular, it respond to exprIsConApp_maybe, even though newtypes aren't *really* proper constructors. See long comments with Note [Single-method classes] for why this slight hack is justified.
Showing with 74 additions and 36 deletions