Fix encoding of keywords in the verbose encoder.

In particular, make sure that the keyword '~^' is not represented as "~:~~^" in JSON, escaping twice. This fixes the last QuickCheck test.
Fuse away the intermediate list generation.