Fix Commands.Scoreboard.Timer locale string

Closes #1626
Assume that block data = 0 if there isn't one in the config
.length doesn't start at 0
There is no usage of this method in which "all" will not cause NPE's
Have ExperienceCommand and SkillresetCommand explicitly handle 'all'
Harden save() method by making a defensive copy
Run PlayerProfileSaveTask async, as intended