CLN/ENH: add parse_dates arg and use TextReader
ENH: add tupleize_cols, thousands args

tupleize_cols=False by default, for back compat
thousands=',' by default, because we're not parsing CSV
TST: add test case for GH5048
TST: add nyse_wsj data
TST: add nyse wsj test
TST: add new wsj cashflow test
BUG: MI issue with tupleize_cols=False
CLN/ER: add BadDataError internal exception
IO: use codecs so that unicode decode does not raise