ENH/TST: Add assertRaisesRegexp to util/testing

Port of assertRaisesRegexp from Python 2.7 unittest
CLN: Change merge to raise ValueError on overlapping indices

TST: Change Exceptions to appropriate cases for tests involving merge.
CLN: Change internal error from Exception to PandasError
CLN: stats/common: replace bare exceptions

Replace with more descriptive exceptions

TST: Add test case for unrecognized cluster
CLN: cleaner window check in ols + add error message
CLN: Cleanup stats/common and change exception type

Made it explicit that cluster_type checks if it's a window type first.
Changed `get_cluster_type` to be clearer as well.

Replaced the `Exception` raise with a `ValueError` raise.

TST: Add test case for bad window_type
CLN: pandas/sparse: replace bare exceptions

Replace with more descriptive exceptions

CLN: SparsePanel: replace bare exceptions

CLN: SparseFrame: change bare exceptions

CLN: SparseSeries: change bare exceptions

CLN: SparseArray: change bare exceptions

Harmonize capitalization of SparseArray IndexErrors

Added note about possible unreachable code fragment

TST: Add test cases for SparseArray

TST: Add SparseFrame test cases for the improved exceptions
CLN: tools/tile: replace bare exceptions

TST: Add test for new ValueError in tile tests
CLN: pandas/tseries: replace bare exceptions

Replaces bare exceptions with more descriptive ones.
CLN: tseries/frequencies: replace bare exceptions

CLN: tseries/index: replace bare exceptions (mostly tz-aware + tz-naive
TypeError stuff)

CLN: tseries/offsets: replace bare exceptions

CLN: tseries/tools: replace bare exceptions

CLN: Remove exclamation points from error messages.

TST: Add more descriptive tests for tseries.

TST: Change tests in tseries/test_offsets to be more descriptive

TST: Update tests for exceptions from frequencies.py

TST: Make more Exception tests in tseries/test_timezones explicit

TST: Change test of ole2datetime to use explicit Exception check

TST: Fix up tests in tseries/test/test_daterange

In particular, fix up a bunch of test cases that were failing because
of TypeErrors/clearly not changing when _cached_range changed type
signature.
CLN: Use timezone natively supported by pytz

Apparently Asia/Beijing is actually used in China, but it's
not natively supported in timezone software. See for example:
https://bugs.launchpad.net/ubuntu/+source/libgweather/+bug/228554

That said, example timezone in docs should at least work, so
that's the reason for the change
CLN: Make aware vs. naive always a TypeError
CLN: Clean up the _cached_range exceptions and checks

(Plus catch the uncaught obj + None TypeError that was going on in the
test cases)
CLN: core/common: replace bare exceptions
TST: core/common: add tests for _mut_exclusive NOT DONE
core/common - change exception, leave note
CLN: core/format: replace bare exceptions
CLN: change wording of multi_index -> MultiIndex for consistency
TST: Test changed Exception in core/format
CLN: core/frame: replace bare exceptions
CLN: core/internals: replace bare exceptions