BUG: Fix wrong str.format() calls in Index.summary

GH3869
Merge pull request #4751 from jtratner/fix-summary-GH3869

BUG: Fix wrong str.format() calls in Index.summary
BUG: Fix crash using to_csv with QUOTE_NONE

Now passes `quotechar` to csv's writer. Default is same as csv (`'"'`),
but sets to `None` with `quoting=csv.QUOTE_NONE`.
Merge pull request #4752 from jtratner/fix-to_csv_QUOTE_NONE-GH4328

BUG: Fix crash using to_csv with QUOTE_NONE
ENH:Add raise_with_traceback & use in assertRaises

* Adds `raise_with_traceback` to `pandas.compat`, which handles the
  Python 2/3 syntax differences for raising with traceback.
* Uses `raise_with_traceback` in `assertRaises` and `assertRaisesRegexp`
  so they provide better feedback.

ENH: raise_with_traceback method.
CLN: Better exceptions and tests for core/frame

CLN: Big simplification of test_frame
TST: Add test cases for bad input, etc.
CLN: Exceptions that shouldn't happen should be assertions (mostly _apply*)
CLN/TST: Right Exceptions + remove duplicate tests

A few tests were duplicating the same thing or actually just the same
test, those have been refactored or removed. Many tests were changed to
specify the Exception they were looking for (and also to use the new
`with_statement` format for assertRaises, etc.)

CLN: Harmonize SparseDF and DF Exceptions
ENH: SparseDF apply now accepts axis='columns'