ENH/BUG: str.extractall doesn't support index
- [x] closes #10008
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

```
# same output as pd.Series(["a1a2", "b1", "c1"]).str.extractall("[ab](?P<digit>\d)")
idx = pd.Index(["a1a2", "b1", "c1"])
idx.str.extractall("[ab](?P<digit>\d)")
#         digit
#   match      
#0 0         1
#   1         2
#1 0         1
```

**NOTE** Also fixed a bug `Series.str.extractall` raises `ValueError` if its `Index` is `str` with 2 or more characters.

```
s = pd.Series(["a1a2", "b1", "c1"], index=pd.Index(["xx", "yy", "zz"]))
s.str.extractall("[ab](?P<digit>\d)")
# ValueError: Length of names must match number of levels in MultiIndex.
```

CC: @tdhock
 thanks @sinhrks very nice!
