CLN: Better exceptions and tests for core/frame

CLN: test_frame fixups + core/frame improvements

CLN: Big simplification of test_frame
ENH: Have assertRaises maintain traceback

* 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.
small assertRaisesRegexp fixups
TST: Test shape mismatch for dot product.
TST: Test cases for bad input exceptions to to_timestamp

to_timestamp invalid argument tests
TST: test_period: Exception --> ValueError
ENH: SparseDF apply now accepts axis='columns'
CLN: Exceptions that shouldn't happen should be assertions (mostly _apply*)
slight touchup to message in _get_agg_axis
add numbers to tell where the assert False is coming from :P
TST: Cleanup a to_panel test case
Undo me - looking at Travis
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: Make Exceptions more specific
TST: Cleanup test_frame some more