alternatecalendar: fix race in thread
- There can be more than one QRunnable running at the same time.
- s_solarTermsMap in ChineseCalendarProviderPrivate is not guarded by a mutex, and it can be used in more than one thread.
- QCache doesn't clear its cache in FIFO way, so remove QCache and just use a plain copy of the result instead, which means only the current month is cached, and should be enough in most cases.
Edited by Fushan Wen