enable use of alternate period classes

I need an alternate Week that only iterates over weekdays (that is, excluding Saturday and Sunday). I thought perhaps a more general solution would permit others to address their own needs to integrate alternate period classes.

This PR offers the ability to supply the names of alternate 'dayClass', 'weekClass', 'monthClass' and/or 'yearClass' in an associative array:

-- as a third parameter to the constructors of the existing Week, Month and Year classes (so that they use any specified alternate period in their iterators and the Days array in the case of Month.

 -- as the parameter to Calendar::setClasses.