Make concat work with special filenames

Concat used to break badly with filenames containing active shell
characters such as question marks or asterisks.

The name of the fragment directory is now a sha1 hash of the target
filename, thus avoiding having to deal with special characters in most
places.

The shell script concatfragments.sh now uses more resilient methods for
enumerating files.  This should allow arbitrary filenames only limited
by the filesystem.
Add a test for special filenames

This test creates three files: One with question marks, one with
asterisks and one with newlines in its name.