Add support for asynchronous commission events.

@ehebert, could you give me a code review for this change?