Added client factory for easier testing setup.
Moved postMessageParticipant's postMessage listener to a named function. This lets us unintrusively add communication for testing purposes by removing the listener & adding a different one.
refs #31