BUG: expanding/rolling_apply() interpret min_periods=0 as min_periods=1
`expanding/rolling_apply()` interpret `min_periods=0` as `min_periods=1`. This is _usually_ ok, as almost every function will return `NaN` when the inputs are all `NaN`. However, this is not true, for example, of functions like `len()`.

For example, I think that in the following calls, the results should be `1, 2, 2` and `1, 2, 3`, respectively.

```
In [409]: rolling_apply(Series([None, None, None]), 2, lambda x: len(x), min_periods=0)
Out[409]:
0   NaN
1   NaN
2   NaN
dtype: float64

In [411]: expanding_apply(Series([None, None, None]), lambda x: len(x), min_periods=0)
Out[411]:
0   NaN
1   NaN
2   NaN
dtype: float64
```
