WeaselJsonParser_reset is documented to restore the parser to its
newly-created state, but reset() only rewound the symbol stack. The
inKey flag and transient DFA/codepoint state from the previous parse
leaked into the next parse, so a top-level string after a mid-key
reset was delivered via on_key_data instead of on_string_data.
Reset inKey to false and clear utf8Codepoint, utf16Surrogate,
minCodepoint, numDfa, and strDfa so the next document starts fresh.
Add a test that reproduces the reported misrouting.