Creates an object that waits for a set of messages to
arrive.
@note: unlike other wait conditions, when a message
is received, a L{Message} instance is returned by L{get_event()},
not the L{WaitForMessages} instance.
@param accept: message name or names to accept (receive) in
the current state
@type accept: string or sequence of string
@param defer: message name or names to defer (queue) in the
current state
@type defer: string or sequence of string
@param discard: message name or names to discard (drop) in the
current state
@type discard: string or sequence of string