Deal with columns with weird names

Since the contents of a CSV field are essentially free-form text,
anything can be in that header line.  Instead of hand-picking a few
characters that will get transliterated to an underscore, transform
everything that doesn't belong to a very well defined set of characters.

We could so something more sophisticated here, like Unicode folding, but
I think for the purpose of a tool like textql this suffices.

Also, no need to match an then replace.  We can simply replace
unconditionally, and if nothing gets replaced, we get the same thing
back.
Merge pull request #26 from mem/master

Deal with columns with weird names