Calendar rebase

This replaces #1281.

Fixed unit tests and cleaner history based on Scott's rebase. Unit tests work in latest FF and Chrome but still fail via grunt. @jzaefferer You mentioned an upcoming improvement for asycTests?
I'm not sure it's even necessary to test this. We could verify that the calendar's option gets set but I'm not sure how valuable that is.