Implement prepared enqueue statements.

Prepared statements guarantee insertion will succeed.
If the type is nothrow-constructable for Args, assign(Args) will be nothrow,
provided the statement is initialized properly.
Implement promise handling message queue.

This message queue takes futures as input and yields ready futures
as output.