Extensive changes to Calendar class

- Calendar class structure changed again. Calendar is now simply a
VIRTUAL class with HolidayCalendar now doing most of the work. Want to
allow future extensions of Calendar in ways I have not envisaged.
- Additional methods for HolidayCalendar class
- More work on PeriodWithCalendar class
Doc updates