API: Stop modifying SQL column and names, and warn when pertinent.
Closes #6796

If any columns names written `to_sql` via a legacy connection _would_ have been modified by previous versions of pandas, a warning is issued, both on table creation and row insertion. But no names are modified.

There is a stray warning message in nosetests. Otherwise good, I think. Does this reflect our consensus?

Looking good, I think this does reflect consensus!

Maybe also add a test to check that a column name with a space is written correctly?

And what warning messages do you get in nose?
 Edited in response to @jorisvandenbossche's review _and_ added a test for a bug in the original PR: DataFrame column names must be converted to strings.
 Ah, good, the integer column name error was still a to-fix on the #6292 list. Checked it as fixed!

Looking good for the rest. Ready to merge for you?
 nosetests still spews a straw warning. Know a trick for finding out which test is to blame? I am pretty sure `tm.assert_produces_warning` suppresses the warning, so this is leaking out from some other test.
 *straw -> stray
 which warning do you get?

If you just execute the file (tests_sql.py, there is a main that calls nose), then I see the progress of the tests in my terminal, and you can see for which test it is generated.
 BTW, there is still a warning that you should not care about for the moment (about not being a SQLAlchemy engine, at the moment you get that always when using the legacy, so just the first test using a DBAPI connection is triggering this).
 Oh OK. I thought that warning was due to me. Then this is ready to merge.
 No it was not you, but I think we should do something about the warning (but that is a discussion for legacy-status issue).

Merged, thanks!
