fillna/fill_value fails when filling with a list
``` python
In [48]: s = pd.Series([np.NaN, 'hello world'])

In [49]: s
Out[49]: 
0            NaN
1    hello world
dtype: object

In [50]: s.fillna([])
Out[50]: 
0            NaN
1    hello world
dtype: object

In [51]: s.fillna(['not empty'])
Out[51]: 
0      not empty
1    hello world
dtype: object
```

Had a quick peak in the code and it looks like a numpy issue (1.6.2)

``` python
In [52]: a = np.array([np.NaN, 'hello world'])

In [53]: m = np.array([True, False])

In [54]: a[m] = []

In [55]: a
Out[55]: 
array(['nan', 'hello world'], 
      dtype='|S11')

In [56]: a[m] = ['not empty']

In [57]: a
Out[57]: 
array(['not empty', 'hello world'], 
      dtype='|S11')
```

similar issue when using operators supporting `fill_value`

``` python
In [58]: s1 = pd.Series([np.NaN, [1,2], [10, 20]])

In [59]: s2 = pd.Series([[3,4], np.NaN, [30, 40]])

In [60]: s1.add(s2, fill_value=[])

...
TypeError: unsupported operand type(s) for +: 'float' and 'list'
```

Did not try for DataFrame, but i suppose this will be the same.
