states: fix handling switches inside conditions (fake_cur_stree)
This is broken from when I re-worked how the fake_cur_stree worked. Before
that we used to randomly merge the fake_cur_stree with the cur_stree. It
had really complicated side effects but one side effect was that this stuff
used to work.
In the current code what was happening was that when we did a break we
would discard everything from the fake_cur_stree.
Now we create a new fake stream to store these states. We can't merge them
in with the cur_stree because we're supposed to be able to discard all
fake states. We also can't just mix the cur_stree in with the fake
stree. The design of the fake stree is that we have to keep it separate.
It's a little bit more complicated in some way, but more precise and
transparent in other ways...
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>