BUG: replace with a scalar works like a list of to_replace for compat with 0.12 (GH5319)

closes #5319

Essentitally this is ``ffill``
```
In [1]: Series([1,np.nan,2]).replace([np.nan])
Out[1]: 
0    1
1    1
2    2
dtype: float64

In [2]: Series([1,np.nan,2]).replace(np.nan)
Out[2]: 
0    1
1    1
2    2
dtype: float64
```

A bit confusing on a Frame, so raise an error
```
In [3]: DataFrame(randn(5,2)).replace(np.nan)
TypeError: cannot replace [nan] with method pad on a DataFrame
```

This was the exception before this PR on a Frame
```
TypeError: If "to_replace" and "value" are both None and "to_replace" is not a list, then regex must be a mapping
```