Change AckSuccesses to not produce nils

Instead, produce ProduceErrors with the Err field nil. This lets the user more
easily determine which messages succeeded and simplifies the SimpleProducer.
Allow specifying diff partitioners for diff topics

With a fallback DefaultPartitioner that defaults to Random, so the base
behaviour doesn't change.