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?
Is there a reason your using `this.element.on` here instead of `this._on` I can't see one but if there is a need to, we need to make sure to check `this.options.disabled` before toggling `ui-state-hover` or better yet if `this._on` will work:
```
this._hoverable(  this.element.find( ".ui-calendar-header a, .ui-calendar-calendar a" ) );
```