JSON parser: Fix parsing of unicode escape sequences.

Also, refactor all json string-related functions, so they're much simpler now. And expectJsonStringChar() can be used by jml's users to easily implement expectJsonStringUTF8():

std::string s;

bool isUnicode;
uint16_t c = expectJsonStringChar(context, isUnicode);

if (isUnicode) s += utf8::encode(c);
else s += c;