Verified fake for client implementations to test against

We need a low-overhead fake implementation for external clients (such as https://github.com/praekelt/go-http-api which already has its own fake implementation we can use as a starting point) to test against.

We don't want these external clients to require all of vumi-go just to get the test double, so it probably needs to live in a subproject with its own setup.py and such.

The functional tests for the real implementation also need to run against the fake implementation to verify that the behaviour is identical across the two.
I've got a feeling we will end up with these things the fake of each api we create. Should we maybe think about moving these into the toolkit or something?