BUGFIX: Block values outside the domain after bitvector expansion

Before this commit, comparisons between a variable and an integer
outside its expanded domain could be incorrectly evaluated to True.

The expanded domain is the domain that results after mapping a
variable to a bitvector of boolean-valued variables.  E.g., the
expanded domain of x [0,2] is [0,3] because [0,2] requires two
bits of representation.

E.g., the following would be incorrectly declared "realizable" by
gr1c -r

ENV:;
SYS: loc [0,2];

ENVINIT:;
ENVTRANS:;
ENVGOAL:;

SYSINIT: loc = 0;
SYSTRANS:
  []((loc = 0) -> ((loc'=0) | (loc'=1)))
& []((loc = 1) -> ((loc'=0) | (loc'=1) | (loc'=2)))
& []((loc = 2) -> ((loc'=1) | (loc'=2) | (loc'=3)))
& []((loc = 3) -> ((loc'=2) | (loc'=3) | (loc'=4)))
& []((loc = 4) -> ((loc'=3) | (loc'=4)));
SYSGOAL: []<> (loc = 4);