Guard decodeAnswers against empty answer list
decodeAnswers('') returned [''] (length 1) instead of [], breaking the
round-trip for an empty list. This is a latent issue: loadedLangs() in
words.ts treats answers.length > 0 as a real state, so a language shipping
zero answers would be wrongly reported as loaded and dailyAnswer would
return ''. Short-circuit the empty blob to [] and add a regression test.