Create a macro list of drivers to enable easier addition of further drivers.
Use macro expansion to generate extern device_drv prototypes.
Reuse the DRIVER_ macros to avoid having yet another definition for DRV_
Add a noop function for driver detect when it's missing.
Forward declare all device drivers in miner.h avoiding the need to export them everywhere else.
Use macro expansion to iterate over all device drivers without needing to explicitly code in support in all places. Pass a hotplug bool to the detect() function to prevent opencl trying to hogplug GPUs.
Put avalon last in the sequence of adding drivers to prevent it trying to claim similar chip devices on startup.
Remove unnecessary gpu_threads initialisation.
There is no need to get the external prototypes for drivers in cgminer.c any more.