move recurrence text helpers into patterns. move next_date calculation into 
respective models