Unexpected behavior with binary operators and fill_value
From https://github.com/dask/dask/issues/1063. `fill_value` doesn't seem to apply if the argument to a binary operator is a constant, but works fine for other arguments:

``` python
In [1]: import pandas as pd

In [2]: df = pd.DataFrame(range(10), columns=['foo'])

In [3]: df2 = df.copy()

In [4]: df2.iloc[0] = None

In [5]: df2.add(2, fill_value=0)
Out[5]:
    foo
0   NaN
1   3.0
2   4.0
3   5.0
4   6.0
5   7.0
6   8.0
7   9.0
8  10.0
9  11.0

In [6]: df2.add(df, fill_value=0)
Out[6]:
    foo
0   0.0
1   2.0
2   4.0
3   6.0
4   8.0
5  10.0
6  12.0
7  14.0
8  16.0
9  18.0

In [7]: pd.__version__
Out[7]: u'0.18.0rc2+2.g19e40a0'
```

From the docstring I'd expect it to be equivalent to `df2.fillna(0).add(2)`. If this is intended behavior, then the docstring should be updated to clarify this.
