Replaced result lists in Calculator with yield return. Replaced RecurrenceTypeId with RecurrenceType in AppointmentRecurrence (for readbility)

I made an optimization to use yield return for Calculator results instead of temporary lists. This is useful in scenarios when you have to skip many occurences, which would lead to redundant memory usage by those lists. I could not miss the opportunity for loops optimization, to make the code a bit leaner. And I replaced RecurrenceTypeId with RecurrenceType to avoid using (int) casts in tests and sample.