Remove the settings-mutating year-hopping in GetAccountExpensesPerMonth
that discarded the user's header year selection and silently forced
the Spendings-over-time chart back to DateTime.Now.Year. The chart
now honours settingsService.GetYear(), skips accounts with no
transactions instead of returning null, and no longer depends on
IAccountRepository or ISubclassRepository.
Also reorder the plan: async becomes PR F, tests PR G.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>