I'd prefer that if the user wants to pack data into the callback that they would do something like this:

```python
callback = functools.partial(_finish_pub, msg=msg)
nsq.writer.pub("topic", msg, callback)

def _finish_pub(msg, response):
    if response.frame_type_id == nsq.FRAME_TYPE_ERROR:
        logging.error(response.data)
```

this way we dont have to auto-pack the data that was passed in, ie the line above just becomes:

```python
conn.callback_queue.append(callback)
```

and below we do not need to special case `if pub_data:` (https://github.com/bitly/pynsq/pull/25/files#L1R124)