BUG: series replace should allow a single list
Also reverts the `method` parameter of `NDFrame.replace()` deprecation

closes #4743

@jreback this ok 2 merge? or did u find a `_get_fill_func`-type function elsewhere?
 I don't think this will work if you pass odd dtypes eg 'a' to an int series or something ; maybe put some tests that change dtype on purpose 
 fyi...may want to move some of your tests to test_generic.py
 is it ok if i move in a separate pr?
 re strange `dtype`s: what behavior do u want? if you pass a replacement for a value that doesn't exist, then the original series is returned. e.g.,

```
In [16]: s = Series(arange(5.))

In [17]: s.replace({'a': 1, 'b': 1})
Out[17]:
0    0
1    1
2    2
3    3
4    4
dtype: float64

In [18]: s.replace(['a','b'])
Out[18]:
0    0
1    1
2    2
3    3
4    4
dtype: float64
```

but mixing things works

```
In [19]: s.replace(['a',1])
Out[19]:
0    0
1    0
2    2
3    3
4    4
dtype: float64
```
 sep PR for tests ok....

what I mean is, just some confirming tests....

```
In [1]: s = Series(np.arange(5))

In [2]: s.replace?

In [3]: s.replace([3],[3.])
Out[3]: 
0    0
1    1
2    2
3    3
4    4
dtype: int64

In [4]: s.replace([3],[3.5])
Out[4]: 
0    0.0
1    1.0
2    2.0
3    3.5
4    4.0
dtype: float64

In [5]: s.replace([3,4],[3.5,'a'])
Out[5]: 
0      0
1      1
2      2
3    3.5
4      a
dtype: object

In [6]: s.replace([3,4],[3.5,Timestamp('20130101')])
Out[6]: 
0                      0
1                      1
2                      2
3                    3.5
4    2013-01-01 00:00:00
dtype: object

In [7]: s.replace([3,4],[3.5,True])
Out[7]: 
0    0.0
1    1.0
2    2.0
3    3.5
4    1.0
dtype: float64
```

note the last one; I am not sure we can do much about that (well we can but only if you use Block.setitem, where I attempt to see if you are using a bool and do the right thing)....but too much work really
 ah ok
 @jreback this ok?
 I guess I don't understand how this works

```
ser = Series([0, 1, 2, 3, 4])
result = ser.replace([1,2,3])
assert_series_equal(result, Series([0,0,0,0,4]))
```

so the 1,2,3 are all replaced by 0? (shouldn't it be `nan`)?
 It's treating `1`, `2`, and `3` as "missing" and replacing them by the nearest valid value (this is what the `pad_1d` function does)
 ic....so tantamount to `s[[1,2,3]] = np.nan; s.ffill()`
 ok then
 Yes. In fact, that's what I was doing, but then dtype is not preserved (in cases where it can be)
 cool...go ahead then
 in test_series.py

```
       def test_replace_mixed_types(self):
(Pdb) l
4697            s = Series(np.arange(5))
4698 
```

This fails on 32-bit because s is int32 (and expected is int64)
use `s = Series(np.arange(5),dtype='int64')` here.....

as the numpy arrays pass thru the dtype :)

I am just going to fix it in a PR I am doing. FYI
 ah ok ... cool thanks
