fix sql keywords in columns name bug

the function `pandas.io.sql.write_frame` failed if keywords were
used as column names in a DataFrame. i have added hard brackets
to the column names as generated by the `get_sqlite_schema`
function and created a test case in `test_sql.py`
ENH: add method use_inf_as_null to core.common (GH #1919)
DOC: update docs about null/missing values
DOC: add caveat regarding the use of dicts as arg to read_csv()
DOC: grammer

[ci skip]
BUG: index.format should accept unicode index names
CLN: Move test_console_encode out of wrong test class
TST: unless a file is pure ascii, you must specify an encoding
TST: remove fmt.test_to_string_force_unicode

I think this is the wrong behaviour, and it breaks some
future unicode fixes. the constructor should  should complain
that no encoding was specified when the input is not ascii.
CLN: Move _is_sequence() from pd.frame to pd.common, with other is_*
TST: add test for _is_sequence()
ENH: rework console encoding detection in fmt.print_config
ENH: Add helpers to pd.common: pprint_thing/_encoded(),console_encode()
TST: add test_pprint_thing()
TST: Series repr fails when name is tuple holding non string-type #2051
ENH: SeriesFormatter footer repr now uses pprint_thing()

fixes #2051
ENH: explicitly encode retval of SeriesFormatter.to_string() with console_encode()
ENH: Index summary() and format() now delegate to pprint_thing()
ENH: tseries.Index.summary() now delegates to pprint_thing()
BUG: TextReader._explicit_index_names() should allow for unicode index_name