Let gearmand handle job uniques and don't stuff the data into the unique on '-'
Use weakrefs to avoid leaks

Dictionaries in client and client_handler keep references to
GearmanJobRequest objects, but aren't explicitly removed until they
either fail or complete.

This never occurs when wait_until_complete=False, so using
WeakKeyDictionary and WeakValueDictionary ensures the request objects
can be garbage collected.
after_job() hook
Deal with unicode params in a conservative way.
Fix for unicode handling and test thereof
Updating CHANGES file
Add contact email address to license
Include conf.py in sdist
Changing print statement to reflect job is complete, not failed
Handle closed connections in poll_connections_until_stopped loop
Updates changes reg. two latest pulls
Revert "Fix for unicode handling and test thereof"

This reverts commit 9d73fb262e8b720510e519310f3221a00d2de4cd.
Revert "Deal with unicode params in a conservative way."

This reverts commit 0faa3ad3249d206a567f733e2d6b5b6c478c14c9.
Updated to reflect the reverts
Add more checking for null and non-ascii chars.

The protocol says;
"Arguments given in the data part are separated by a NULL byte, and
the last argument is determined by the size of data after the last
NULL byte separator. All job handle arguments must not be longer than
64 bytes, including NULL terminator."

This adds a check to ensure that all arguments, but the last, do
not contain \0.

I do not check the args pass encode('ascii'). It would make sense,
since it's not known what will happen inside the bowels of gearmand.
It uses memcmp for the most part, and we have to assume the
queue storage can handle utf8, as long as it does not contain
\0.
Update changes
Reset connections during poll_until timeout

This is a bit of a hack, but:
    When poll_connections_until_stopped's timer triggers and the loop
    ends, this will reconnect connected connections when
    establish_connection is called, rather than just continuing.

    This might break things, and that would be terrible; but if it
    doesn't, then life is good and this should fix the odd problem of
    having connections we can't seem to write to, leaving us with only
    one connection to the server that actually gets used.
Make the reconnect safe when we have data to send.

If the outgoing buffer isn't empty, we're still sending
a command. We should wait to restart the connection until
we've given the buffer a chance to empty and a response to come
through from the daemon.
Only reconnect if a given time has passed

This is a per-connection timeout, default is 60 seconds.
rename reconnect to maybe_reconnect