Cleanup msg cnt handling.  Track send/recv timestamps.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Implement remaining callbacks, msg_cnt, cleanups.

Add minimal implementations of on_msg_delivered,
on_send_complete, on_msg_error.  Rename on_request to
on_msg, for consistency.

Replace the message sequence logic mistakenly combined
with msg batching, with an explicit message count in the
xio header.  Add xio_msg_cnt helper class to peek at its
value.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add Message completion functors.

The immediate goal is to enable XioMessenger to ensure its
completions are satisfied.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add send_reply(Message *m, Message *reply) to Messenger interface.

This change removes the assumption that Message replies are
necessarily independent of the Message being replied to.

For SimpleMessenger, the impleentation just calls send_message on
the Connection associated with Message m.  Other Messengers may
use variant data on Message m to fire completions, release buffers,
and so forth.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Refactor Message::Completion.

Derive it from Context (which should have a better name, like,
Completion).  Also, begin implementing request and response
cleanup in callbacks and reply_hook.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>