merge_asof() must be able to operate with timezone-aware DatetimeIndex
I can perform the following merge just fine:

```python
left = pd.DataFrame({'date': pd.DatetimeIndex(start=pd.to_datetime('2016-01-02'),
                                              freq='D', periods=5),
                     'value1':np.arange(5)})
right = pd.DataFrame({'date': pd.DatetimeIndex(start=pd.to_datetime('2016-01-01'),
                                               freq='D', periods=5),
                      'value2':list("ABCDE")})
pd.merge_asof(left, right, on='date', tolerance=pd.Timedelta('1 day'))
```

However, adding a timezone to the DatetimeIndex doesn't work:

```python
import pytz
left = pd.DataFrame({'date': pd.DatetimeIndex(start=pd.to_datetime('2016-01-02'),
                                              freq='D', periods=5, tz=pytz.timezone('UTC')),
                     'value1':np.arange(5)})
right = pd.DataFrame({'date': pd.DatetimeIndex(start=pd.to_datetime('2016-01-01'),
                                               freq='D', periods=5, tz=pytz.timezone('UTC')),
                      'value2':list("ABCDE")})
pd.merge_asof(left, right, on='date', tolerance=pd.Timedelta('1 day'))
```

I get the oddly worded

```python
MergeError: incompatible tolerance, must be compat with type <class 'pandas.tseries.index.DatetimeIndex'>
```

The solution is actually very simple. `_AsOfMerge._get_merge_keys()` needs to check for `is_datetime64tz_dtype()` in addition to `is_datetime64_dtype()` when there is a tolerance. I should also fix the error message to be clearer.

