Perform some code cleanup
Close opened files
Add :async_in option
More code cleaning up
Test error handling
Fix logical errors in option compilation
Implement Porcelain.spawn and input/output streams