.replace() with a dict about 60x slower than .map().fillna()
(pandas versions: 0.17.0, 0.18.0)

It seems that `Series.replace` is orders of magnitude slower than `Series.map` when called with a dict, and consumes enormous amounts of RAM:

``` python
>>> np.random.seed(0)
>>> s = pd.Series(np.random.randint(0, 10000, 1000000))
>>> r = {np.random.randint(0, 10000): np.random.randint(10000) for _ in range(1000)}
>>> assert (s.map(r).fillna(s) == s.replace(r)).all()
>>> %timeit s.replace(r)
1 loop, best of 3: 1.63 s per loop
>>> %timeit s.map(r).fillna(s)
10 loops, best of 3: 26.6 ms per loop
```

Memory stats not provided here but I've seen it explode (e.g. use 60+ GB RAM).

An old issue, not sure if related: #6697.
