It is important to avoid upsetting the busybody, because people who ask a lot of nosy questions also tend to be gossipy rumor-starters, so if you get on their bad side they might turn into a problem for you. What you want is for them to think you are genuinely boring, and they will leave you alone as soon as they realize you are not a good source of the juicy information that they crave. I recommend neutralizing the busybody in two steps:
- The initial deflection. As you pointed out, being very direct (e.g., "I'd rather not answer that") may come across as rude or suspicious. Jokes such as the ones you mentioned can be very effective for the initial deflection. Another less direct way to deflect a nosy question is to make a confused face and earnestly ask the busybody "Hmm why do you ask?" or "Hmm why does that matter?". This will put them on their heels for a moment while they consider how to respond.
- The derailment. Abruptly change the topic to something mind numbingly boring (to them). Be careful to pretend like this is a completely genuine and spontaneous topic change, like it just popped into your head. If you are in a work environment, you can bring up some dry work-related topic or even ask them to help you with some work-related thing (e.g., "OH, hey while you're here, could you help me make some photocopies???"). If you are in a social context, then try to find some other topic that they find boring (e.g., college football, your adorable niece, the latest news from North Korea, or really anything you can ramble on about that bores them).
If you do this a few times, usually the busybody will stop approaching you to ask nosy questions because every time they do, they get sucked into some boring task or conversation. It won't make them like you, but it won't make them hate you either- you will simply become useless to them, and they will leave you alone.