Add a 'NOT_IN' constraint

It basically works like a not-CHOICE constraint execpt that it accepts
an empty list (or no list at all).

While there, add tests for the CHOICE constraint.