refactor(calendar.js): added a calendarCtrl and put the mapping/change watching functionality there

Signed-off-by: Josh Kurz <josh.kurz@turner.com>