Bug 1084014 - [Calendar] update Month view to use DayObserver r=gaye

### Changelog

 - merge important logic from `TimeParent` into `Month` to keep a shallow inheritance tree and a simpler structure.
 - use `dayObserver` and create a `MonthDay` view that is only responsible for the busytime dots.
 - this patch will degrade the performance since it does way more calls to `timeController.findAssociated` than the old logic, but this is addressed by the new `dayObserver` introduced by #26511
I'll keep this logic here since one of the polish bugs is to add swipe animations/transitions to all the time views.. so this should be useful in the future.