Fix incorrect handling of nested paths when generating string files

When generating strings files, the `write_all_files` method will incorrectly handle relative paths. The `Dir.foreach` check will iterate over subpath of an input directory, but the check to `File.directory?` does not ensure that the item's path is considered with the full relative parent.

This change ensures that valid files are not skipped because they were stripped of their relative parent directory.

I also added an error in the event that zero files are written -- my build process silently produced an invalid app archive because no output or failure was generated despite the fact that Twine didn't actually do any work.