Brain surgery. Calendar now receives a list of holidays and CalendarSpec receives the specification.

A new function create_date_index was created to isolate the date index
creation and allow it to be tested.