Preserve subclass family on reshape operations
Subclassed Series and DataFrames with custom `_constructor`, `_constructor_sliced`, and `_constructor_expanddim` methods return pandas Series and DataFrame objects on reshape operations:

```python
>>> import numpy as np, pandas as pd
>>> import pandas.util.testing as tm
>>> df = tm.SubclassedDataFrame(np.random.random((4,5)))
>>> df
          0         1         2         3         4
0  0.151944  0.948561  0.639122  0.718071  0.296193
1  0.004606  0.978378  0.827614  0.479320  0.495945
2  0.158874  0.535476  0.173194  0.065292  0.365851
3  0.772392  0.105038  0.671064  0.164165  0.795803
>>> type(df)
<class 'pandas.util.testing.SubclassedDataFrame'>
```

Slicing operations use `_constructor_sliced`:
```python
>>> type(df[0])
<class 'pandas.util.testing.SubclassedSeries'>
```

Reshape operations return regular pandas objects:
```python
>>> type(df.stack())
<class 'pandas.core.series.Series'>
```

It would be great if this returned a `SublcassedSeries`. Same goes for unstack and pivot.