Holiday Dates Filter not happy with an Observance of type None
I did not see this behavior listed in the current issue list for version 0.17.1.

When using an observance in a rule for adding an election day (every even year), using this function to determine the observance:

```
def election_observance(dt):
    if dt.year % 2 == 1:
        return None
    else:
        return dt + pd.DateOffset(weekday=TU(1))
```

the Calendar date filter throws an error when the observance is type None.

```
     37 start_date = pd.to_datetime('20160108')
     38 end_date   = pd.to_datetime('20171231')
---> 39 my_cal = cal.holidays(start_date, end_date, return_name=True)
     40 my_cal
/Users/pete/IPython Notebook Example/lib/python2.7/site-packages/pandas/tseries/holiday.pyc in holidays(self, start, end, return_name)
    375         if self._cache is None or start < self._cache[0] or end > self._cache[1]:
    376             for rule in self.rules:
--> 377                 rule_holidays = rule.dates(start, end, return_name=True)
    378 
    379                 if holidays is None:
/Users/pete/IPython Notebook Example/lib/python2.7/site-packages/pandas/tseries/holiday.pyc in dates(self, start_date, end_date, return_name)
    216         if self.end_date is not None:
    217             filter_end_date = min(self.end_date.tz_localize(filter_end_date.tz), filter_end_date)
--> 218         holiday_dates = holiday_dates[(holiday_dates >= filter_start_date) &
    219                                       (holiday_dates <= filter_end_date)]
    220         if return_name:
pandas/tslib.pyx in pandas.tslib._Timestamp.__richcmp__ (pandas/tslib.c:17992)()
TypeError: Cannot compare type 'Timestamp' with type 'NoneType'
```

Using a bogus return value like `dt = pd.to_datetime('1/1/2000')` returns a Timestamp for the filter to compare eliminated the error, but doesn't feel like this should be the correct behavior. 

Perhaps I should use a better return value ? 

Certainly there is no 'empty' Timestamp, as the filter errors on what appear to be pre-Gregorian calendar dates.
## Complete code

```
def election_observance(dt):
    if dt.year % 2 == 1:
        return None
    else:
        return dt + pd.DateOffset(weekday=TU(1))

from pandas.tseries.holiday import AbstractHolidayCalendar
from pandas.tseries.holiday import Holiday
from pandas.tseries.holiday import MO, TU, TH, FR, nearest_workday
from pandas.tseries.holiday import USMemorialDay, USLaborDay, USColumbusDay, USThanksgivingDay, USMartinLutherKingJr, USPresidentsDay, GoodFriday, EasterMonday
from pandas.tseries.offsets import *

class ExampleCalendar(AbstractHolidayCalendar):
    rules = [
    Holiday('New Years Day', month=1,  day=1,  observance=nearest_workday),
    USMartinLutherKingJr,
    USPresidentsDay,
    USMemorialDay,
    Holiday('July 4th', month=7,  day=4,  observance=nearest_workday),
    USLaborDay,
    USColumbusDay,
    Holiday('Veterans Day', month=11, day=11, observance=nearest_workday),
    USThanksgivingDay,
    Holiday('Christmas', month=12, day=25, observance=nearest_workday),
    GoodFriday,
    EasterMonday,
    Holiday('Day After Thanksgiving Day', month=11, day=1, offset=DateOffset(weekday=FR(4))),
    Holiday('New Years Day', month=1, day=1),
    Holiday('Veterans Day', month=11, day=11, observance=nearest_workday),
    Holiday('West Virginia Day', month=6, day=20),
    Holiday('US Election Day', month=11, day=2, observance=election_observance),  
    ]

cal = ExampleCalendar()
start_date = pd.to_datetime('20160108')
end_date   = pd.to_datetime('20181231')
my_cal = cal.holidays(start_date, end_date, return_name=True)
```
