Improved error reporting in xio 

I'm worried I may have botched the branch / join process... wondering why the five commits are reported here (instead of just the last one, the only real commit I am trying to submit).  I'm accustomed to using git-svn at work, which has a different work flow.

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.