Refactor Month to use DatePeriod, iterating over Day objects

Add configuratble option for the starting day of the week (default to
Sunday)
Instead of iterating over weeks, we iterate over days now