Added eventloop.
Added Destory() in tests to clean up event loop go routines at the end.
Merge pull request #21 from vladimirvivien/pure

added tests for http_transporter, split upid tests.
Fixed data race in messenger.Start() and messenger.Send()

Move the listening logic into transporter.Listen(). So that
we can make sure that messenger.Send() is called only after
the tranporter.upid is ready.

Passed go test -v -race.
Merge pull request #20 from yifan-gu/event_loop

Replaced locks with eventloop.
Merge pull request #26 from yifan-gu/pure

Fixed data race in messenger.Start() and messenger.Send()
Verified and tested.
Merge remote-tracking branch 'upstream/pure' into pure
Completed SchedDriver.Start() with tests.