make the cheap blocking in message router test more durable.
Split the message router tests into 3 separate tests.

These tests are really complicated and failure randomly, I want to split them
into separate tests so I can dig into exactly why the tests fail.
Merge pull request #145 from robertmaynard/split_message_router_tests

Split message router tests