msg.c fixes

This preliminary fixes the segfault from #272. The proper fix should probably be to find out how `sender_msg` can be 0 in the first place, when two UDP packets are received at the same time.

Another patch enables interrupts again when functions return that previously called `dINT()`, forgot to call `eINT()` in some code paths, so now there are much less
> interrupts are off, but I caught a signal.

messages.

Thirdly, it outputs a DEBUG message when messages can't be queued.
Most callers in RIOT don't check the return value, so at least output some hint what's going on with ENABLE_DEBUG set.
I guess the next step would be to go to all callers and print an actual `printf` warning, as it's not obvious to the user when a message was silently lost.