BUG: string methods on empty series (GH7241)
closes #7241

this will need a release note (though 0.14.1 section is not there yet)
 can u squash to a single commit
 ok
 This is good.

I wonder if for consistency perhaps these should return empty Series/DataFRames with object dtype?

```
In [8]: s.str.findall('a')
Out[8]: Series([], dtype: object)
```
 agreed @wabu can u put in tests for all string methods in empty series (their maybe some already existing) and see what breaks if u enforce object dtype
 It's not necessarily object for all string methods, I guess it should match the dtype of a non-empty example... for example str.count and str.len returns int64 (actually these could be the only examples).
 right those are counting methods so they should be int64 in empty
 sounds like the right thing to do, I'll have a look.
I realized some time ago that other methods behave strange with empty series/dfs, but did not have time to look at this (perhaps it's already fixed).
 I changed _na_map. as noted in the release notes, now `str_extract` returns series with only nan values as `dtype=object` instead of `float`. I think it's strange if you have object for empty, but float for not-matching strings.

old:

```
>>> pd.Series(['foo']).str.extract('(bar)')
0 NaN
dtype: float
```

new:

```
>>> pd.Series(['foo']).str.extract('(bar)')
0 NaN
dtype: object
```
 thanks for putting the empty tests together!

You have a merge conflict (probably in release notes) so please rebase off master.
 closed via https://github.com/pydata/pandas/commit/f24f2e81e702ea6ec338cf179be3273f67cb5bbb

(there was another merge conflict on the release notes!)
 Thanks!
