CLN: Refactor string methods and add PandasObject

Previous PandasObject becomes PandasContainer. New PandasObject becomes
baseclass for more elements (like Index, Categorical, etc.), moves
string methods to baseclass and subclassing objects need only define
`__unicode__` methods to get all string methods for free (and Py2/3
compatible).

CLN: Cleanup extraneous str methods from Panel

CLN: Remove unnecessary string methods from frame

CLN: Change name of TestPandasObjects --> TestPandasContainer
CLN: Make more core objects inherit PandasObject
CLN: Make Categorical inherit from PandasObject

CLN: Make GroupBy inherit from PandasObject

CLN/ENH: Make Sparse* into PandasObjects

Plus get all the string methods working...

CLN: Index now a PandasObject + str method cleanup

CLN: Make tseries/index fit with PandasObject.

CLN: Use PandasObject in internals + cleanup

CLN: Make Period into a PandasObject + cleanup

CLN: Remove extraneous __repr__ from io/excel
CLN: Have PyTables, stats, & Stata use StringMixin

CLN: Make PyTables unicode safe + add StringMixin

CLN: Make StataMissingValue use StringMixin

ENH: Use StringMixin for addl string methods in stats
DOC: New class hierarchy + StringMixin

DOC/CLN: Remove extra whitespace from v0.12.0.txt

DOC: Add PR issue number too

DOC: Fix spelling error
CLN: Move _constructor checks to PandasObject base
Merge pull request #4092 from jtratner/refactor_string_special_methods

CLN: Refactor string special methods