This lets us encapsulate everything about a check in its JS definition,
which makes it much simpler for other extensions or gadgets to create
checks.
Change-Id: Ica23fc26a576d55addb001e4baf78b3702927208
Most of this code was already typed, but not everything. Using
language-level type declarations allows us to remove extra PHPDoc
blocks that just repeat the same information.
I'm also using the more narrow UserIdentity instead of User in a
few places where this is possible.
Change-Id: I7661824fcb34180af1a4fd3030fcd6c0b7d34089
Adds two new configs:
* ignoreSections, array of section names that'll be compared
* ignoreLeadSection, bool for whether to ignore the lead section
Bug: T346949
Depends-On: I7ded925b91b1d86b3c76c4135c85a3f0be1dee5e
Change-Id: I44f18fadcafbe011008d8abff566e2ccd7682f4f