Potential fix for 'exec' failure case

 - Adding more robust code to handle the case where the exec call within fails. Now, spawn will raise an exception if this happens.
 - Adding a test to ensure this exception is raised when an invalid binary is run
Good point, it's probably better not to make an assumption about the errno.  OSError seems to reliably put the errno into the exception text... Would it make more sense to pull it out with a regex or to send it again as, say, the first few bytes sent over the pipe?