BUG: Sparse master issue
These other issues will be fixed by this
- [x] #667 other dtypes PR #13849
- [x] #10818 `from_coo` issues (same as #10560)
- [ ] #10079 empty construction
- [x] #10560 `__repr__` broken, PR #12779 
- [x] #10536 concat `SparseSeries`, PR #12844
- [x] #12174 concat `SparseDataFrame`? PR #12966
- [x] #4400 more testing of indexing (#12848)
- [x] #12794 more/better sparse docs PR https://github.com/pandas-dev/pandas/commit/b13ddd57f6f88f75d987dd84d208a2329f1d94bb
- [ ] #12855 return types
- [x] #13110 non float repr PR #13849
- [x] #13001 signatures PR #13849
- [x] #13144 repr of large arrays (#13163)
- [x] `SparseSeries` with `MultiIndex` indexing (#13163)
- [ ] `SparseDataFrame/Series` with `MultiIndex` indexing  (#15447)
- [ ] `SparseSeries` with non-unique index indexing 
- [ ] `SparseDataFrame` with non-unique index indexing 
- [ ] slicing / reindexing `SparseDataFrame` to return subclass (#13787)
- [ ] concat (#16874)

The fundamental issue is that slicing is broken in sparse.

```
In [11]: s = Series([1]+[np.nan]*5).to_sparse()

In [12]: s
Out[12]: 
0     1
1   NaN
2   NaN
3   NaN
4   NaN
5   NaN
dtype: float64
BlockIndex
Block locations: array([0], dtype=int32)
Block lengths: array([1], dtype=int32)

In [13]: s.iloc[0:3]
Out[13]: 
[1.0, nan, nan]
Fill: nan
BlockIndex
Block locations: array([0], dtype=int32)
Block lengths: array([1], dtype=int32)

In [14]: type(s.iloc[0:3])
Out[14]: pandas.sparse.array.SparseArray

In [15]: type(s)
Out[15]: pandas.sparse.series.SparseSeries
[14] should be a SparseSeries (not SparseArray which is the underlying object the SparseSeries holds). its not getting wrapped when sliced somewhere.
```
