Add an optional response callback to Producer

Adds a callback that can be used to determine which messages failed to send and why.
If should only ever be zero if there is no error.