Implement a mock transport

The goal of this task is to implement a mock transport for unit testing (see #5). Once we have the mock transport, we can start implementing leader election and ZAB on top of it.