Portable definition of function attributes
Merge pull request #689 from rousselk/compiler-attrib

Portable definition of function attributes
core: msg: don't wake up sender after receive if it's REPLY_BLOCKED

solves issue #100

If the sender is reply-blocked, waking it up after its message has been
delivered is wrong. It needs to stay reply-blocked until the reply has
been delivered.
core: msg: add some debug statements
core: msg: yield after queueing of a message if REPLY_BLOCKED

When setting the running task reply_blocked, it is implicitly removed
from the runqueue. But if queueing of a msg is actually successful, the
thread exits msg_send without yielding, continuing to run even if it's
not supposed to.

Nice example of why multiple function exit points lead to weird
errors...