Fix 'or'ing states.
With the implied states we set more states than the scripts by themselves
would. For example:
frob() ; <- x is merged of assume_nonnull and nonnull.
if (foo || bar) {
foo implies x is nonnull.
if foo is null then x is assume_nonnull.
bar has no implications one way or the other.
When it comes to Oring the states the old method was to say that x was
undefined merged with nonnull which is undefined.
The new method takes into consideration that before the condition x was
either nonnull or assume_nonnull and we don't get an error.
Signed-off-by: Dan Carpenter <error27@gmail.com>