allow method=nearest for fillna. see issue #9471.
closes #9471 

This needs tests. Does it work on non-numeric dtypes? (e.g., strings?)
 The latest commit should support all the methods from `interpolate()` and adds a test which checks for the same result as `interpolate()`. I'm not sure if this is a reasonable way to test this. The test is only for the DataFrame.

Unfortunately, it does not seem to work on non-numeric types, since scipy interpolation does not seem to support that case. I'm also unsure what distance metric should be used for strings.

Regarding your code comment, I changed the `axis=1` override to only happen if the incoming axis is None and one of the interpolate methods is used.
 Regarding 'nearest', I can see these different scenarios:
1. index and values are both numeric.
   This should be mostly taken care of with calling out to `interpolate`.
2. index is numeric and values are non-numeric (in particular strings).
   This does not work with the above patch and should certainly be supported.
3. index is non-numeric and values are either numeric or non-numeric.
   The index still needs a distance metric (probably user defineable).
   This case seems more experimental and I'm not sure if it is even worthwhile doing.

Regarding case (2), this is what I am currently playing with:

``` python
import numpy as np
import pandas as pd
from pandas.util.testing import assert_frame_equal

df = pd.DataFrame({'A': ["a",np.NaN,"c",np.NaN,"e"]}, index=[1,2,5,9,10])
expected = pd.DataFrame({'A': ["a","a","c","e","e"]}, index=[1,2,5,9,10])

nan_inds = df[df.isnull().any(axis=1)].index.values
df_no_nan = df.dropna()

result = df.copy()
result.loc[result.isnull().any(axis=1), 'A'] = [result.loc[df_no_nan.index[df_no_nan.index.get_loc(i, method='nearest')]].values[0] for i in nan_inds]

assert_frame_equal(result, expected)
```

This seems very convoluted. I would be grateful for hints.
 closing pls reopen if/when updated
