Almost implement asyncness
Thats why the pointer was not recognised.
Implement the poller event loop
Still needs more work for multiple messages in flight
Some bug fixes.
Fix tests and another bug or two
Tune water marks
Cure some memory leaeks
Indentation
fix regression with marquise_send_frame return code
Whitespace
Off by one error and superflous debug output
fix printf call
have an req/rep socket to control collator

This will let us use push/pull sockets on the collator for
the actual frames. Currently using req/rep from the client
thread to the collator thread is requiring multiple context
switches for every frame send (as the client is blocking on
the ack).

The overhead for this isn't a problem for databursts, but
this was bottlenecking throughput waiting on acks, and slaying
host CPUs with hundreds of thousands of context switches a
second.

In this case, the OOB req/rep socket doesn't do anything most
of the time. We are now free to change the main data path from
the client to something that can actually queue multiple messages.
change client->collator socket to PUSH/PULL ftw
Start adding some profiling

Some of these could be assertions or sent out a telemetry channel
fix race condition in collator on shutdown
This socket is not needed
Merge async branch