Added DriverUnavailableException for reporting connection/network problems.
Removed non-atomic operations

* Removed `LockInterface::isAcquired()`
* Removed `DriverInterface::isAcquired()`
* Removed `LockAlreadyAcquiredException`
* Removed `LockNotAcquiredException`
* Renamed `LockAcquisitionException` to `LockException`
* `LockInterface::extend()` now throws `LockException` on failure
Drivers now return the actual TTL remaining on acquire() and extend().