Subclassing improvements
Addresses indexing issues related to subclassing (#11559).

Also made some changes to base, groupby, reshape, strings. 
So for example, if df was a SubclassedDataFrame and s was a SubclassedSeries
`df.groupby('A').apply(lambda x: x)`
and
`s.value_counts()`
would return SubclassedDataFrame and SubclassedSeries instances, respectively.
