For #3 I like to put them in the hot seat. Instead of "That isn't funny!" I ask "I don't get it. Why is that funny?" I put on a confused look, tilt my head with wide innocent eyes, and wait for them to stammer through an explanation. So let's say someone makes a "joke" about "women drivers". I do my little act and they're left to explain why women drivers are supposedly bad. "But I interned at an insurance company and women get lower insurance rates than men because they get into fewer accidents". (Feel free to lie about your experience as long as the facts are straight>)
And I can keep that pseudo-Socratic shit up all day until they walk away humiliated.