core/msg: use disable/restoreIRQ

* needed to change internal `msg_send` to allow external disabling of interrupts

~~**Disclaimer:**
This is not beautiful, but I thought it's better than the status quo and might serve as a starting point for discussion.~~