Split part of minerloop_async into do_job_prepare and do_job_start
Split part of minerloop_async into do_process_results, and don't allow api->job_get_results to return hashes
Abstract select_timeout function to convert a realtime timeval to a timeout pointer for select()
Split part of minerloop_async into do_get_results, and a bit other reorganization
Make minerloop_async more async, using some callbacks to handle event completions
Move new device API code to new deviceapi.c source file
Bugfix: Clean out unused variables from minerloop_async
Replace UNIX-only work_restart_fd pipe with portable work_restart_notifier
minerloop_async: Break out of select on work_restart_notifier