CustomBusinessDay slow for increments <0 and >1
For rolling back or for moving forward more than one step, `DateOffset`s create a new instance setting `n` [accordingly](https://github.com/bjonen/pandas/blob/master/pandas/tseries/offsets.py#L312). The `CustomBusinessDay` constructor can be very slow, however, when a large list of `holidays` is passed. The holidays are [processed](https://github.com/bjonen/pandas/blob/master/pandas/tseries/offsets.py#L633) to datetime64. 

As a result speed deteriorates by two magnitudes. 

```
import pandas as pd
import datetime as dt

pd.__version__
Out[6]:
'0.14.1'
In [7]:
cbday = pd.offsets.CustomBusinessDay()
date + cbday
%timeit date + cbday
100000 loops, best of 3: 14.6 µs per loop
In [8]:
hdays = [dt.datetime(2013,1,1) for ele in range(1000)]
cbdayh = pd.offsets.CustomBusinessDay(holidays=hdays)
date + cbdayh
%timeit date + cbdayh
%timeit date + 2*cbdayh
%timeit date - 1*cbdayh
%timeit date - 10*cbday

100000 loops, best of 3: 14.6 µs per loop
100 loops, best of 3: 3.4 ms per loop
100 loops, best of 3: 6.76 ms per loop
10000 loops, best of 3: 27.8 µs per loop
```

I think it makes sense to have the user call `to_dt64` before initializing `CustomBusinessDay` and to rely on the holidays to be passed in the correct format. Any other ideas how to handle this problem? Shall I create a PR for this? 
