Use a timeout when looking for a job to reserve

Allow setting a timeout for the reserve command when looking for new
jobs.  Helps reduce starvation/increase throughput on job consumption
when using multiple beanstalk servers that don't receive jobs at the
same rate.

The default value of nil for .reserve_timeout keeps the previous
behavior.
Merge pull request #71 from EasyPost/find-more-work

Use a timeout when looking for a job to reserve
Support ThreadsOnFork class settings for threads, garbage and priority limits
Use Thread to log message at exit
Clean up duplicate code
(cherry picked from commit 68ec8ac)
Fix possible queue name override by existing beanstalkd queue
(cherry picked from commit 7b17b2f)
Merge pull request #73 from silentshade/support_threads_on_fork_class_settings

Support ThreadsOnFork class settings for threads, garbage and priority limits
Merge pull request #75 from silentshade/fix_tube_names_override

Fix possible queue name override by existing beanstalkd queue
Merge pull request #74 from silentshade/fix_shutdown_error

Use Thread to log message at exit
Update README.md
Update README.md
Merge pull request #1 from nesquena/master

Sync with nesquena/master