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?
Calendar only has a `select` event at the moment (the other three are datepicker-only), and it should be pretty easy to write a quick test for it.