Make switch statements work again.
Switch statements had a problem where if you took the sm_state tree formed
by a switch statement and tried to figure out the implications in a second
switch some implications were lost.
The problem was caused because instead of just saving the remaining
possible case statements, we tried to save the remaining possible states.
The new way is obviously to just save the remaining possible case values.
I had to modify all the implied stuff to use range lists instead of single
values, and create range_list_stacks and some other infrastructure changes.
Signed-off-by: Dan Carpenter <error27@gmail.com>