Ability to exit work loop gracefully

This change adds the ability to call Shutdown on a gearman-go worker which causes the
worker to wait for all currently active jobs to finish and then close the connection.

It does this by keeping tracking of the number of currently active transactions, disallowing
new job creation, and using a WaitGroup to wait for all active jobs to finish.
It's to protect against the where we get a new job after we've finished waiting for the activeJobs to complete, but before we actually call Close(). It's a pretty unlikely race condition, but I believe it exists. I'll add a comment.