StringMethods.extract fails on empty series
When using extract with more then one group, it fails on empty series:

```
>>> pd.Series([], dtype=str).str.extract('()')
Series([], dtype: float64)

>>> pd.Series([], dtype=str).str.extract('()()')
ValueError: Shape of passed values is (0, 0), indices imply (2, 0)
```

I expect it to return an empty DataFrame with the correct columns.
