Improve detection of code that stops execution.

Test case missing because it needs quite complex setup and it is easier to
test it on real code.

example code on which I test it:
```
{
  boolean a()
  {
     if(true)
       return true;
     else
       return false;
  }

  boolean b()
  {
     symbol a = `a;
     switch(a) {
        case `a: break; //if(true) break; doesn't work due to problem with removing break, but detection is correct
        case `b: return false;
     }
  }


  boolean c()
  {
     symbol a = `a;
     switch(a) {
        case `a: return true;
        case `b: return false;
        default: return true;
     }
  }
}
```