Add support for configuring Kafka Producers

You may now build a managed and configured Kafka `Producer` in the same way as
you can build managed and configured Kafka Consumers.

Also adds support for `snappy` compression to both consumer and
producer.