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
Naming again - something explicit like `exec_err_data`?