Fix leak when constructing message

There is a bug in the current implementation of MessageBuilder in
capnproto which prevents it from being moved safely.
Add Shared Future

The messenger needs a shared future which passes a copy of the future
state to the callback instead of moving it. This allows message
reception to work