event publisher changes
event publisher changes

* Create a publisher thread local in each worker
* Execute workload in a work stealing pool
  * This defaults to 1 thread per CPU
* Handler the publisher future inside the worker thread
  * This lets us log when we're getting rate limited by pubsub
* Turn on the logback JMX Configurator
* Turn on Batching inside pubsub
  * This will let us publish a large volume of messages
  * The trade off is increased latency from send time to receive time
* Cleaned up publisher return signature
  * Publisher was returning a list of size 1 containing an ApiFuture
  * New signature returns just an ApiFuture

GoogleCloudPlatform/retail-common-services,GoogleCloudPlatform/retail-common-services,GoogleCloudPlatform/retail-common-services,GoogleCloudPlatform/retail-common-services