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?
Yes. This should be changed.

Problem is it's much easier to test this in Datepicker as it has a isValid method. In Calendar I need to check if the selected value has changed even if it shouldn't.