- Move the P() and V() to subroutines so that they can be accessed
from class methods. The reference to strerror() caused problems.
- Implement new DEVICE class methods block() and unblock() that
do what was previously done in 3 lines of code.
- Implement wait_for_device(), which will wait for any device
to be released then return. This requires a new global mutex
and condition variable, and is implemented in src/stored/wait.c
- Change the code in reserve_device_for_read(), which previously
failed the job to use the new device wait code.