Add a NOT_IN constraint (and make 'IN an alias for 'CHOICE')

It basically works like a not-CHOICE constraint except that it accepts
an empty list (or no list at all).

While there, add tests for the CHOICE constraint.