Update ZipkinSpanCollector implementation so spans are put on a BlockingQueue and processed in a separate thread.

This is done to avoid overhead on application. Putting span on a queue
is very fast and submitting it to Zipkin Span Collector or Scribe is
handled by a back-end thread.