str'ified column names in DataFrame.to_hdf(); Fixes #9057
closes #9057

Converted column names to strings before creating pytables metadata object

This brute force `str()`ing method _might_ not be the best approach, but AFAIK it hasn't broken any of the tests.

Yeah, my bad, that makes sense. I moved them over.
 the reason for not allowing this is that queries become non-obvious and the data does not correctly round trip

so I suppoose this is ok but needs a warning to show that this is losing data
 pls do the tests like the others, e.g. use `ensure_clean_path` which handles the cleanup in the correct way
 pls add a warning when things are stringified as well (as this is generally something which is not obvious and makes querying different).
 Do you think that it's better to just straight-up disallow `to_hdf()` on `DataFrame`s with integer column names? If there are numerous places in the code where it's assumed that a column name can be mapped to a Python identifier, then simply working around the problem (as in this PR) may just be asking for a world of hurt. Thoughts?
 I think it might be better to raise a more informative error message

the point of the Table format is to query and so have integer names though can work is a bit odd
(the actual exception comes from PyTables though as it cannot hold integer names) 
 @jameshiebert I think let's just raise an error message. Pls rebase and update.
 Sounds good. Closing this in favor of #10098
