Clean up temporary files on exit