Don't try to join a set of just one file (e.g. IMAGE.000) and reduce memory usage when joining large segments.

When there a single file called something like IMAGE.000, don't try to join it.
The joining procedure tries to read an entire segment file into memory, this may lead to a string overflow.
Use shutil.copyfileobj() with a 24 MB buffer instead.
All regex expressions in newsunpack should use "raw" literal strings.