ENH: Index StringMethods should return MultiIndex when result dimension is more than one
Currently the `Index.str` methods only support returning `Index` results. However, analogous to the expansion from `Series.str.*` -> `DataFrame`, we should be able to do `Index.str.*` -> `MultiIndex` in certain cases, as discussed in https://github.com/pydata/pandas/pull/9870#issuecomment-92416184 

Some of the string methods that can support this are: `str.get_dummies`, `str.extract`, `str.split`
- [x] `split` (#10085)
- [x] `rsplit` (#10303)
- [x] `partition` / `rpartition` (#9773)
- [x] `extract` (#11386, only supports one group )
- [x] `extractall` (not implemented in Index), #13156 
- [x] `get_dummies` (#12842)

Here are the related PRs: https://github.com/pydata/pandas/pull/9667, https://github.com/pydata/pandas/pull/9843, https://github.com/pydata/pandas/pull/9870, https://github.com/pydata/pandas/pull/9985
