Fix root cause of ZMQ problems on android

The ZMQ library assumes all sending happens from the same thread.
Therefore I've made a wrapper that can be used with an IProtobufClient
to isolate send & receive via a pair of linked blocking queues.

This has the added benefit on Android of guaranteeing we never do
network activity in the main thread (even of a service).

Fixes https://github.com/DroidPlanner/droidplanner/issues/800