Improved error reporting in xio

How portable is strerror? Assuming it is... This patch provides more robust
failure mode reporting in xio.

Pre patch:
curvetun[15819]: ioctl screwed up!

Post patch:
curvetun[15819]: ioctl screwed up! Operation not permitted.
Corrected spinning loop potential in getrandombytes

Client was unable to start due to repeated loop execution.

Successful file descriptor opening of /dev/urandom had no
impact on loop execution, preventing the client from moving on.

Signed-off-by: Scott Moeller <electronjoe@gmail.com>