1. HashMap non-thread-safe issus
2. Fix the same problem in pr621, but use a better implementation
Add the following functions:
1. There is now a language cache inside getLanguage to prepare for different languages corresponding to different time zones where the accounts in the server are located
Use as `pauseTask(taskName)`. They return boolean values to tell the developer if a timed task can be paused/resumed/cancelled properly.
A little bit of testing shows that pausing and then resuming may execute the task multiple times.