ZipkinService based on Brave.
There should be at most 1 of these instances in a given running app, shared between multiple
objects that need tracing.
Basic interface for what a ZipkinService might look like.
The ServerSpan and ClientSpan types are to allow you to use types that are richer than the normal
Zipkin Span type if needed (this is useful when using with say, Brave)
Dummy ZipkinServiceLike that just returns true or false based on whether the Spans passed to it are
sendable to Zipkin