driver_register - register driver with bus
int driver_register (struct device_driver * drv);
drv driver to register
We pass off most of the work to the bus_add_driver call, since most of the things we have to do deal with the bus structures. The one interesting aspect is that we setup drv->unloaded as a completion that gets complete when the driver reference count reaches 0.