Add `message::apply` convenience member function

This patch adds a new convenience member function to `message` that makes it
particularly easy to apply a one-shot handler to a message.