As has been mentioned, “gay” encompasses as many kinds of people as there are kinds of straight people. Language shifts and varies depending on location, as well, so it’s impossible to speak for us all. Plus, there will always be people who find problems to complain about, so I’m sure there are even some people out there who are offended by anything less than a drag queen in the White House and fabulousness for All. Actually, I could totally get down with that. Can we make that happen?
The safest term would probably be “gay”. As in, “he/she is gay”. For me, the only time “gay” as a noun is acceptable is in the phrase gays in the military. “A gay” or “the gays” are things too often spoken by ignorant and/or hateful people and they get my hackles up a bit when I hear them.
Everything else doesn’t matter, really. You probably shouldn’t use the other words unless you know that the company you’re in is cool with it. If you’re friends long enough, the topic will most likely come up in conversation at some point. Actually, if you’re not sure, you could probably just ask the person. If someone, especially a friend, came to me and asked what I’d like to be called because they respect my preferences, I’d love them so much for caring about my feelings and for being respectful, open, and direct!
The other words, it depends. They’re charged words and you have to be careful because they have different connotations to everyone. I believe we’ve reclaimed these words amongst ourselves and I feel that, unless you’ve been on the receiving end of a slur, you can’t really understand why the gay community, or the African-American community, feels the need to take back language rooted in hate and oppression. The slurs and stereotypes are part of the culture, there are still people who use this language in hate, and reclaiming a word is a way to make it sting less when it’s hurled at you.
Words are powerful. There’s also a feeling, I think, that if you’ve never experienced a slur directed at you, you have no right to use that language, no matter what your intent.