1 中文usually is used for "What language do you speak?" I speak Chinese 我会说中文。You speak good Chinese. 你中文很好。The related word would be like 英文(English)
2 汉语 Usually it's used in the names of some Chinese language tests.. like 汉语语言测试
3 中国话 When I see this, it reminds me of a song which has lyrics including this word... it's not so common in daily use I think.. If you say 我会说中国话 It's quite foreign..
4 华语 Usually it's about songs. Some song rewards, 华语音乐榜单 means the Chinese songs rewards, 华语金曲 Chinese songs, the related words would be like 粤语金曲 Cantonese songs, 欧美金曲 English songs, etc
5 普通话 Means mandarin. Used to compare with other dialects. 你普通话说的很好 You speak good mandarin, means you don't have many accents.