Add extra filename sanity checking.

Now filenames are checked per-character for alpha/num & .
Where previously they were just excluded for a few bad chars.

Hopefully this addresses #8