Fill drivers missing reinit_device with a noop version.
Provide a blank get_statline_before function for drivers that don't have one.
Provide a blank get_statline for drivers that don't support it.
Provide a noop get_stats function for drivers that don't support it.
Use blank_get_statline_before for GPU devices that don't support adl monitoring.
Provide a noop thread_prepare function for drivers that don't use thread_prepare.
Provide a noop can_limit_work for devices that don't support it.
Provide a noop thread_init for drivers that don't support it.
Provide a noop prepare_work for drivers that don't support it.
Provide a noop hw_error function for drivers that don't support it.
Provide a noop thread_shutdown function for drivers that don't support it.
Provide a noop thread_enable function for drivers that don't support it.
Abstract out the main hashing loop to allow us to use a separate loop for devices that are fast enough to require queued work.
Merge pull request #382 from kanoi/hotplug

USB tidy up requests + Hotplug
Keep the unique id of each work item across copy_work to prevent multiple work items having the same id.
Merge branch 'master' into usb-dev