New Producer design
Workaround https://issues.apache.org/jira/browse/KAFKA-1718
Add some logging to the new producer
Add some tests

Also fix one bug found by the tests
Remove an unused struct element

Also simplify an if/else into just an if as suggested by golint.
Take PartitionerConstructors in the producer

and generate a new partitioner for each topic
Get rid of partitioner locks

they are no longer necessary
Default to hash partitioner

This is what the scala client defaults to
Move PartitionerConstructor definition into partitioner.go
Fix shutdown even harder

Worked through the happens-before graph a little more formally and found some
(admittedly unlikely) cases where shutdown would fail/panic/hang/whatever. This
version *should* be correct.
Fix Close() to return nil in case of no errors

A typed nil still compares non-nil when stuffed into an interface. Thanks to Tom
(ORBAT) for pointing this out.
Actually check the return from Close in our tests
Move successes to its own channel
Merge pull request #132 from Shopify/producer-ng

New producer design [beta]