Generate selser change assignments dynamically.

Removes reliance on an external file, selser.changes.json, that needed to
be updated manually. Generation is already deterministic, the PRNG is
seeded with the test title, and only adds a second to a full 60 second
test run.

The changes to parserTests-blacklist.js are mostly just removing duplicates
or 0s. However, there are a few non-trivial cases, like:

-add("selser", "Italics and bold: multiple quote sequences: (2,4,2)
[[[4,0]]]");

Looking at the line from selser.changes.json below, you'll noticed a "0"
in the array.

"Italics and bold: multiple quote sequences:
(2,4,2)":[[[2]],[[1]],[4],[[[2,0]]],[[[2,2]]],[[[0,[3]]
]],[3],[[[3,3]]],[1],[2],[[[2,[4]]]],[[4]],[[[0,4]]],[[[3,2]]],0,[[3]],[[[0,[2]]]],[[[3,[2]]]],[[[0,
3]]],[[[0,2]]]],"

What happens is that nonRandomChanges is being set to that 0, which, in
javascript, is a falsy value. When it hits,

if (!changeTree) { ...

The changetree is regenerated and set to [[[4,0]]] from above.

Bug: 50316
Change-Id: I2cac0df54d55973199000fc4d295d72ee01c9689
Merge "Generate selser change assignments dynamically."