enable use of alternate period classes

Another attempt at adding this functionality. The firstweekday numeric parameter is replaced with an options array parameter than can include a 'first_day' numeric element to change the week's first day from the default of Monday, and can also specify the names of one or more alternate period classes to use in place of Day, Week, Month, Year and/or Range.