ENH: merge_asof() has left_index/right_index and left_by/right_by (#14253)
- [x] closes #14253 
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

I'll be the first to admit that there is some kludge in here, identified by comments in the source code. There are some code paths that can only be hit during a `pd.merge_asof()` when `left_index` or `right_index` is set, so no existing functionality will be affected.

I think for pandas 2.0 we'll need to take a [more holistic view of how to do merges](https://github.com/pandas-dev/pandas2/issues/31).
 ## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14531?src=pr) is 85.20% (diff: 87.23%)


> No coverage report found for **master** at 3552dc0.

> Powered by [Codecov](https://codecov.io?src=pr). Last update [3552dc0...acad843](https://codecov.io/gh/pandas-dev/pandas/compare/3552dc0c4533a5eafafe859f5afd29a7ce063e03...acad843dcdf717eea2418a22390d36f84398f3a7?src=pr) Hmm, AppVeyor got a syntax error for a line that isn't mine:

```
from pip._vendor. import string_types
```

Seems like everyone is failing with this. Filed issue #14603.
 @jreback Would this change be more appropriate for 0.19.2 or 0.20.0?
 > Would this change be more appropriate for 0.19.2 or 0.20.0?

There is a tiny API change (in that some of the positional args to `pd.merge_asof` changed) because adding new ones, but think that is ok as we introduced this in 0.19.0, though to be conservative we can defer to 0.20.0
 @jorisvandenbossche 
 @jreback @jorisvandenbossche It's all green finally. @chrisaycock Thanks!

> think that is ok as we introduced this in 0.19.0, though to be conservative we can defer to 0.20.0

I personally have a slight preference to keep this for 0.20.0, but as this was only introduced in 0.19.0, it's not a breakpoint for me