Updates reply API to use an array of replies.

Previously, the "reply" function would be called once per reply, which
was problematic since your reply function would have to aggregate
multiple messages if it wanted to send them all at once. Now, replies
are pushed into an array, and a "done" function is called at the end of
each full "turn".