fixes to the -> possible setting.
The new rule is that ->possible should never be NULL. It should always
at least point to itself.
When you "or" the states the ->possible list was not getting updated.
When you merge a state with a NULL path then that adds an &undefined to
the ->possible list. This is important for "if (a || b)". In that case
you merge a &nonnull with a NULL which means the possible states are
&nonnull, &merged, and &undefined.
The second fix was that clone_state() and as result overwrite_sm_state()
were not saving the ->possible list.
Signed-off-by: Dan Carpenter <error27@gmail.com>