Support for Kafka partition keys

Provides a way to specify a partition key as a string.  Defaults key_serializer to kafka.serializer.StringEncoder to match.

Here's how you configure it to partition message by host:

    output {
        kafka {
            partition_key_format => "%{host}"
        }
    }