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'
BUG:  (GH2702) Bug with Series indexing not raising an error when the right-hand-side has an incorrect length
Merge pull request #4732 from jtratner/change-bare-exceptions-pt-3

CLN: Improve Exceptions in core/frame and testing in test_frame and test_multilievel
CLN: Move print_versions into pandas proper.

CLN: Make print_versions export a method

Make ci/print_versions call pandas/util/print_versions
Merge pull request #4760 from jtratner/add-versions-method

CLN: Move print_versions into pandas proper.
Merge pull request #4756 from jreback/nested

BUG/ER:  (GH2702) Bug with Series indexing not raising an error when the right-hand-side has an incorrect length
TST/CLN: moved the legacy tests out of tseries/test_timeseries.py to tseries/test_timeseries_legacy.py
BUG: (GH4758) Bug in multi-indexing with a partial string selection as one part of a MultIndex
Gotachas -> Gotchas
Merge pull request #4762 from rgbkrk/patch-1

Gotachas -> Gotchas
Merge pull request #4761 from jreback/dt_multi

BUG: in multi-indexing with a partial string selection (GH4758)