* Add pubsub to render_queue and base_worker
* Refactor: Convert ZeroconfServer to Singleton with Class Methods
* New API for subjob servers to notify parent job servers of status changes
* Refactor: Move all subjob related methods to distributed_job_manager.py
* Rewrite for wait_for_subjobs
* Fix: DistributedJobManager.find_available_servers() takes 1 positional argument but 3 were given
* DistributedJobManager should now notify / be notified abotu background job changes
* Fix the make_ready api. Change children keyname to be id@hostname so it can be unique
* Fixes
* Image sequence to movie needs to find the actual start frame
* Fix: subjob_status_change did not return a valid response
* Fix client renderer selection
* Small fix for subjob status checking
* Fix issue with divide_frames_equally
* Fix issue where downloads were not occurring
* Fix issue where old status was being reported
* Add docstrings and code cleanup
* Expose renderer availability in status api
* Remove redundant is_available_for_job API call
* New server split logic by cpu and moved to server_helper.py
* Remove old dead code
* Add RenderStatus.WAITING to proxy categories
* Fix Blender image sequence -> video conversion and change video to use ProRes
* Wait for child jobs to complete
* Download and extract render files from subjobs
* Fix issue where zip was not removed
* Update client to use new method names in server proxy
* Fix minor download issue