GPU auto-detection

* Wrap `nvidia-smi` (a binary for managing NVIDIA gpus which is shipped with the linux driver) to determine the number of GPUs available.

* Incorporated automatic detection in `work_queue_worker`.