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
```

@cpcloud can you take a look?
