Feature Request: merge_asof with interpolation
`merge_asof` with interpolation would be a new feature. When you merge `df1` and `df2`, the merged columns of `df2` would not be the exact "asof" values as in `df2`, but the interpolated values (for example in a linearly time-weighted fashion).


Define
```
np.random.seed(0)
start = pd.Timestamp("2018-07-23 09:00:00")
df1 = pd.DataFrame(np.random.normal(size=5), index=pd.date_range(start, periods=5, freq='S'), columns=['something'])

df2 = pd.DataFrame(np.random.normal(size=5), index=pd.date_range(start, periods=5, freq='S')+datetime.timedelta(seconds=0.5), columns=['something_else'])
df2 = df2.iloc[:2].append(df2.iloc[3:])
```

`df1`:
<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>something</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2018-07-23 09:00:00</th>\n      <td>1.764052</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:01</th>\n      <td>0.400157</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:02</th>\n      <td>0.978738</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:03</th>\n      <td>2.240893</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:04</th>\n      <td>1.867558</td>\n    </tr>\n  </tbody>\n</table>

`df2`:
<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>something_else</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2018-07-23 09:00:00.500</th>\n      <td>-0.977278</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:01.500</th>\n      <td>0.950088</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:03.500</th>\n      <td>-0.103219</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:04.500</th>\n      <td>0.410599</td>\n    </tr>\n  </tbody>\n</table>

This is how `merge_asof` works:
```
pd.merge_asof(df1, df2, left_index=True, right_index=True)
```

Returns:

<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>something</th>\n      <th>something_else</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2018-07-23 09:00:00</th>\n      <td>1.764052</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:01</th>\n      <td>0.400157</td>\n      <td>-0.977278</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:02</th>\n      <td>0.978738</td>\n      <td>0.950088</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:03</th>\n      <td>2.240893</td>\n      <td>0.950088</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:04</th>\n      <td>1.867558</td>\n      <td>-0.103219</td>\n    </tr>\n  </tbody>\n</table>

And so 

```
pd.merge_asof(df1, df2, left_index=True, right_index=True, method="linear")
```

would return

<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>something</th>\n      <th>something_else</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2018-07-23 09:00:00</th>\n      <td>1.764052</td>\n      <td>NaN</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:01</th>\n      <td>0.400157</td>\n      <td>-0.013595</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:02</th>\n      <td>0.978738</td>\n      <td>0.598986</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:03</th>\n      <td>2.240893</td>\n      <td>0.247884</td>\n    </tr>\n    <tr>\n      <th>2018-07-23 09:00:04</th>\n      <td>1.867558</td>\n      <td>0.153690</td>\n    </tr>\n  </tbody>\n</table>

`method="last"` could reproduce default behaviour.


This could also be reproduced by doing these operations manually:

```
pd.merge(df1, df2, left_index=True, right_index=True, how="outer").interpolate("linear").merge(df1, left_index=True, right_index=True, on="something", how="right")
```