Refactor cal.rb; display year headers
Revise to more object-oriented structure throughout