From Daniel_Balogh: Add cancellation to consumer
Initialize Messages for default FetchResponse

This is mainly for the tests which throw null reference errors when an
empty response object is returned.
Fix continue to only occur when messages are received

Before it was continuing if we had a response, not if there were
messages.
Fix test to make them more consistent

Add a helper class to wait for certain event to occur before continuing.

This keeps the test from failing arbitrarily when a sleep was not long
enough.
Also sped up some of the longer sleep tests.